Skip to content

Commit 6da142b

Browse files
authored
fix(Mermaid, YfmHtmlBlock): improve autosave UI behavior (#858)
1 parent d452b02 commit 6da142b

File tree

5 files changed

+32
-22
lines changed

5 files changed

+32
-22
lines changed

demo/stories/yfm/YFM.stories.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,8 +82,8 @@ export const MermaidDiagram: Story = {
8282
args: {
8383
initial: markup.mermaidDiagram,
8484
storyAdditionalControls: {
85-
mermaidAutoSaveEnabled: false,
86-
mermaidAutoSaveDelay: 2000,
85+
mermaidAutoSaveEnabled: true,
86+
mermaidAutoSaveDelay: 500,
8787
},
8888
},
8989
};

src/extensions/additional/Mermaid/MermaidNodeView/MermaidView.tsx

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ const DiagramEditMode: React.FC<{
7171
onCancel: () => void;
7272
options: MermaidOptions;
7373
}> = ({initialText, onSave, onCancel, mermaidInstance, options: {autoSave}}) => {
74-
const {value, handleChange, handleManualSave, isSaveDisabled} = useAutoSave({
74+
const {value, handleChange, handleManualSave, isSaveDisabled, isAutoSaveEnabled} = useAutoSave({
7575
initialValue: initialText || '',
7676
onSave,
7777
onClose: onCancel,
@@ -95,15 +95,19 @@ const DiagramEditMode: React.FC<{
9595
<div className={b('Controls')}>
9696
<div>
9797
<Button onClick={onCancel} view={'flat'}>
98-
<span className={STOP_EVENT_CLASSNAME}>{i18n('cancel')}</span>
99-
</Button>
100-
<Button
101-
onClick={handleManualSave}
102-
view={'action'}
103-
disabled={isSaveDisabled}
104-
>
105-
<span className={STOP_EVENT_CLASSNAME}>{i18n('save')}</span>
98+
<span className={STOP_EVENT_CLASSNAME}>
99+
{isAutoSaveEnabled ? i18n('close') : i18n('cancel')}
100+
</span>
106101
</Button>
102+
{!isAutoSaveEnabled && (
103+
<Button
104+
onClick={handleManualSave}
105+
view={'action'}
106+
disabled={isSaveDisabled}
107+
>
108+
<span className={STOP_EVENT_CLASSNAME}>{i18n('save')}</span>
109+
</Button>
110+
)}
107111
</div>
108112
</div>
109113
</div>

src/extensions/additional/YfmHtmlBlock/YfmHtmlBlockNodeView/YfmHtmlBlockView.tsx

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ const CodeEditMode: React.FC<{
196196
onCancel: () => void;
197197
options: YfmHtmlBlockOptions;
198198
}> = ({initialText, onSave, onCancel, options: {autoSave}}) => {
199-
const {value, handleChange, handleManualSave, isSaveDisabled} = useAutoSave({
199+
const {value, handleChange, handleManualSave, isSaveDisabled, isAutoSaveEnabled} = useAutoSave({
200200
initialValue: initialText || '\n',
201201
onSave,
202202
onClose: onCancel,
@@ -218,15 +218,19 @@ const CodeEditMode: React.FC<{
218218
<div className={b('controls')}>
219219
<div>
220220
<Button onClick={onCancel} view={'flat'}>
221-
<span className={STOP_EVENT_CLASSNAME}>{i18n('cancel')}</span>
222-
</Button>
223-
<Button
224-
onClick={handleManualSave}
225-
view={'action'}
226-
disabled={isSaveDisabled}
227-
>
228-
<span className={STOP_EVENT_CLASSNAME}>{i18n('save')}</span>
221+
<span className={STOP_EVENT_CLASSNAME}>
222+
{isAutoSaveEnabled ? i18n('close') : i18n('cancel')}
223+
</span>
229224
</Button>
225+
{!isAutoSaveEnabled && (
226+
<Button
227+
onClick={handleManualSave}
228+
view={'action'}
229+
disabled={isSaveDisabled}
230+
>
231+
<span className={STOP_EVENT_CLASSNAME}>{i18n('save')}</span>
232+
</Button>
233+
)}
230234
</div>
231235
</div>
232236
</div>

src/i18n/common/en.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
{
22
"cancel": "Cancel",
3+
"close": "Close",
34
"delete": "Delete",
45
"edit": "Edit",
56
"preview": "Preview",
67
"remove": "Remove",
78
"save": "Save",
89
"toolbar_action_disabled": "Incompatible markup element"
9-
}
10+
}

src/i18n/common/ru.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
{
22
"cancel": "Отмена",
3+
"close": "Закрыть",
34
"delete": "Удалить",
45
"edit": "Редактировать",
56
"preview": "Предпросмотр",
67
"remove": "Удалить",
78
"save": "Сохранить",
89
"toolbar_action_disabled": "Несовместимый элемент разметки"
9-
}
10+
}

0 commit comments

Comments
 (0)