This commit is contained in:
tonyrewin 2022-10-09 09:03:13 +03:00
parent 56a82c0c6e
commit d0e98bb525
2 changed files with 26 additions and 15 deletions

View File

@ -45,14 +45,15 @@ export const Sidebar = (_props: SidebarProps) => {
const [store, ctrl] = useState() const [store, ctrl] = useState()
const [lastAction, setLastAction] = createSignal<string | undefined>() const [lastAction, setLastAction] = createSignal<string | undefined>()
const toggleTheme = () => { const toggleTheme = () => {
// TODO: use dark/light toggle somewhere
document.body.classList.toggle('dark') document.body.classList.toggle('dark')
ctrl.updateConfig({ theme: document.body.className }) ctrl.updateConfig({ theme: document.body.className })
} }
const collabText = () => { const collabText = () => {
if (store.collab?.started) { if (store.collab?.started) {
return 'Stop collab' return 'Stop'
} else { } else {
return store.collab?.error ? 'Error collab' : 'Start collab' return store.collab?.error ? t('Restart') : t('Start')
} }
} }
const editorView = () => unwrap(store.editorView) const editorView = () => unwrap(store.editorView)
@ -89,11 +90,11 @@ export const Sidebar = (_props: SidebarProps) => {
}) })
const discardText = () => { const discardText = () => {
if (store.path) { if (store.path) {
return 'Close' return t('Close')
} else if (store.drafts.length > 0 && isEmpty(store.text as EditorState)) { } else if (store.drafts.length > 0 && isEmpty(store.text as EditorState)) {
return 'Delete ⚠️' return t('Delete')
} else { } else {
return 'Clear' return t('Clear')
} }
} }
return ( return (
@ -111,13 +112,10 @@ export const Sidebar = (_props: SidebarProps) => {
<i>({store.path.slice(Math.max(0, store.path.length - 24))})</i> <i>({store.path.slice(Math.max(0, store.path.length - 24))})</i>
</Label> </Label>
)} )}
<Link onClick={onNew}>{t('Create')}</Link> <Link onClick={onNew}>{t('Tabula rasa')}</Link>
<Link onClick={onCollab}>{t('Invite coauthors')}</Link> <Link onClick={onCollab}>{t('Invite coauthors')}</Link>
<Link onClick={() => router.open('/create/settings')}>{t('Publication settings')}</Link> <Link onClick={() => router.open('/create/settings')}>{t('Publication settings')}</Link>
<Link onClick={onHistory}>{t('Changes history')}</Link> <Link onClick={onHistory}>{t('History of changes')}</Link>
<div class="theme-switcher">
<input type="checkbox" name="theme" id="theme" onClick={toggleTheme} />
</div>
<Link <Link
onClick={onDiscard} onClick={onDiscard}
disabled={!store.path && store.drafts.length === 0 && isEmpty(store.text as EditorState)} disabled={!store.path && store.drafts.length === 0 && isEmpty(store.text as EditorState)}
@ -126,13 +124,13 @@ export const Sidebar = (_props: SidebarProps) => {
{discardText()} <Keys keys={[mod, 'w']} /> {discardText()} <Keys keys={[mod, 'w']} />
</Link> </Link>
<Link onClick={onUndo}> <Link onClick={onUndo}>
Undo <Keys keys={[mod, 'z']} /> {t('Undo')} <Keys keys={[mod, 'z']} />
</Link> </Link>
<Link onClick={onRedo}> <Link onClick={onRedo}>
Redo <Keys keys={[mod, 'Shift+z']} /> {t('Redo')} <Keys keys={[mod, 'Shift+z']} />
</Link> </Link>
<Link onClick={onToggleMarkdown} data-testid="markdown"> <Link onClick={onToggleMarkdown} data-testid="markdown">
Markdown mode {store.markdown && '✅'} <Keys keys={[mod, 'm']} /> Markdown {store.markdown && '✅'} <Keys keys={[mod, 'm']} />
</Link> </Link>
<Show when={store.drafts.length > 0}> <Show when={store.drafts.length > 0}>
<h4>{t('Drafts')}:</h4> <h4>{t('Drafts')}:</h4>
@ -144,7 +142,7 @@ export const Sidebar = (_props: SidebarProps) => {
</Show> </Show>
<Link onClick={onCollab} title={store.collab?.error ? 'Connection error' : ''}> <Link onClick={onCollab} title={store.collab?.error ? 'Connection error' : ''}>
Collab {collabText()} {t('Collab')} {collabText()}
</Link> </Link>
<Show when={collabUsers() > 0}> <Show when={collabUsers() > 0}>
<span> <span>

View File

@ -149,5 +149,18 @@
"One time": "Единоразово", "One time": "Единоразово",
"Every month": "Ежемесячно", "Every month": "Ежемесячно",
"Another amount": "Другая сумма", "Another amount": "Другая сумма",
"Just start typing...": "Просто начните..." "Just start typing...": "Просто начните...",
"Tips and proposals": "Советы и предложения",
"Invite coauthors": "Пригласить соавторов",
"Tabula rasa": "С чистого листа",
"Publication settings": "Настройки публикации",
"History of changes": "История правок",
"Undo": "Откат",
"Redo": "Повторить действие",
"Start": "Начать",
"Stop": "Остановить",
"Restart": "Перезапустить",
"Clear": "Сбросить",
"Collab": "Совместно",
"Режим": "Theme"
} }