enh: chatFadeStreamingText toggle

This commit is contained in:
Timothy Jaeryang Baek 2025-07-18 16:45:56 +04:00
parent 853cf82ed8
commit 18adb28da0
2 changed files with 34 additions and 1 deletions

View file

@ -804,7 +804,9 @@
floatingButtons={message?.done && !readOnly} floatingButtons={message?.done && !readOnly}
save={!readOnly} save={!readOnly}
preview={!readOnly} preview={!readOnly}
done={message?.done ?? false} done={($settings?.chatFadeStreamingText ?? true)
? (message?.done ?? false)
: true}
{model} {model}
onTaskClick={async (e) => { onTaskClick={async (e) => {
console.log(e); console.log(e);

View file

@ -49,6 +49,7 @@
let ctrlEnterToSend = false; let ctrlEnterToSend = false;
let copyFormatted = false; let copyFormatted = false;
let chatFadeStreamingText = true;
let collapseCodeBlocks = false; let collapseCodeBlocks = false;
let expandDetails = false; let expandDetails = false;
@ -159,6 +160,11 @@
saveSettings({ imageCompression }); saveSettings({ imageCompression });
}; };
const toggleChatFadeStreamingText = async () => {
chatFadeStreamingText = !chatFadeStreamingText;
saveSettings({ chatFadeStreamingText: chatFadeStreamingText });
};
const toggleHapticFeedback = async () => { const toggleHapticFeedback = async () => {
hapticFeedback = !hapticFeedback; hapticFeedback = !hapticFeedback;
saveSettings({ hapticFeedback: hapticFeedback }); saveSettings({ hapticFeedback: hapticFeedback });
@ -313,6 +319,8 @@
showEmojiInCall = $settings?.showEmojiInCall ?? false; showEmojiInCall = $settings?.showEmojiInCall ?? false;
voiceInterruption = $settings?.voiceInterruption ?? false; voiceInterruption = $settings?.voiceInterruption ?? false;
chatFadeStreamingText = $settings?.chatFadeStreamingText ?? true;
richTextInput = $settings?.richTextInput ?? true; richTextInput = $settings?.richTextInput ?? true;
insertPromptAsRichText = $settings?.insertPromptAsRichText ?? false; insertPromptAsRichText = $settings?.insertPromptAsRichText ?? false;
promptAutocomplete = $settings?.promptAutocomplete ?? false; promptAutocomplete = $settings?.promptAutocomplete ?? false;
@ -746,6 +754,29 @@
</div> </div>
</div> </div>
<div>
<div class=" py-0.5 flex w-full justify-between">
<div id="fade-streaming-label" class=" self-center text-xs">
{$i18n.t('Fade Effect for Streaming Text')}
</div>
<button
aria-labelledby="fade-streaming-label"
class="p-1 px-3 text-xs flex rounded-sm transition"
on:click={() => {
toggleChatFadeStreamingText();
}}
type="button"
>
{#if chatFadeStreamingText === true}
<span class="ml-2 self-center">{$i18n.t('On')}</span>
{:else}
<span class="ml-2 self-center">{$i18n.t('Off')}</span>
{/if}
</button>
</div>
</div>
<div> <div>
<div class=" py-0.5 flex w-full justify-between"> <div class=" py-0.5 flex w-full justify-between">
<div id="rich-input-label" class=" self-center text-xs"> <div id="rich-input-label" class=" self-center text-xs">