refac/fix: title generation button issue

This commit is contained in:
Timothy Jaeryang Baek 2025-07-22 17:31:01 +04:00
parent 8bc7d85eac
commit d21a2581a6
2 changed files with 20 additions and 4 deletions

View file

@ -139,7 +139,10 @@
let itemElement; let itemElement;
let generating = false; let generating = false;
let ignoreBlur = false;
let doubleClicked = false; let doubleClicked = false;
let dragged = false; let dragged = false;
let x = 0; let x = 0;
let y = 0; let y = 0;
@ -314,10 +317,12 @@
bind:value={chatTitle} bind:value={chatTitle}
class=" bg-transparent w-full outline-hidden mr-10" class=" bg-transparent w-full outline-hidden mr-10"
placeholder={generating ? $i18n.t('Generating...') : ''} placeholder={generating ? $i18n.t('Generating...') : ''}
disabled={generating}
on:keydown={chatTitleInputKeydownHandler} on:keydown={chatTitleInputKeydownHandler}
on:blur={async (e) => { on:blur={async (e) => {
// check if target is generate button if (ignoreBlur) {
if (e.relatedTarget?.id === 'generate-title-button') { ignoreBlur = false;
return; return;
} }
@ -417,8 +422,12 @@
> >
<Tooltip content={$i18n.t('Generate')}> <Tooltip content={$i18n.t('Generate')}>
<button <button
class=" self-center dark:hover:text-white transition" class=" self-center dark:hover:text-white transition disabled:cursor-not-allowed"
id="generate-title-button" id="generate-title-button"
disabled={generating}
on:mouseenter={() => {
ignoreBlur = true;
}}
on:click={(e) => { on:click={(e) => {
e.preventDefault(); e.preventDefault();
e.stopImmediatePropagation(); e.stopImmediatePropagation();

View file

@ -126,6 +126,7 @@
let showDeleteConfirm = false; let showDeleteConfirm = false;
let showAccessControlModal = false; let showAccessControlModal = false;
let ignoreBlur = false;
let titleInputFocused = false; let titleInputFocused = false;
let titleGenerating = false; let titleGenerating = false;
@ -970,7 +971,8 @@ Provide the enhanced notes in markdown format. Use markdown syntax for headings,
}} }}
on:blur={(e) => { on:blur={(e) => {
// check if target is generate button // check if target is generate button
if (e.relatedTarget?.id === 'generate-title-button') { if (ignoreBlur) {
ignoreBlur = false;
return; return;
} }
@ -987,6 +989,11 @@ Provide the enhanced notes in markdown format. Use markdown syntax for headings,
<button <button
class=" self-center dark:hover:text-white transition" class=" self-center dark:hover:text-white transition"
id="generate-title-button" id="generate-title-button"
disabled={(note?.user_id !== $user?.id && $user?.role !== 'admin') ||
titleGenerating}
on:mouseenter={() => {
ignoreBlur = true;
}}
on:click={(e) => { on:click={(e) => {
e.preventDefault(); e.preventDefault();
e.stopImmediatePropagation(); e.stopImmediatePropagation();