diff --git a/src/components/SideNavigator/SideNavigator.tsx b/src/components/SideNavigator/SideNavigator.tsx index 82782fdf01..d5b6b6bc77 100644 --- a/src/components/SideNavigator/SideNavigator.tsx +++ b/src/components/SideNavigator/SideNavigator.tsx @@ -151,14 +151,15 @@ export default () => { submitButtonLabel: 'Create Storage', onClose: async (value: string | null) => { if (value == null) return - await createStorage(value) + const storage = await createStorage(value) + push(`/app/storages/${storage.id}/notes`) } }) } } ]) }, - [popup, prompt, createStorage] + [popup, prompt, createStorage, push] ) const { toggleClosed, preferences } = usePreferences() diff --git a/src/components/SideNavigator/StorageCreateForm.tsx b/src/components/SideNavigator/StorageCreateForm.tsx deleted file mode 100644 index c99aa49052..0000000000 --- a/src/components/SideNavigator/StorageCreateForm.tsx +++ /dev/null @@ -1,50 +0,0 @@ -import React from 'react' - -type SotrageCreateFormProps = { - createStorage: (storageName: string) => Promise -} - -type SotrageCreateFormState = { - name: string -} - -export default class SotrageCreateForm extends React.Component< - SotrageCreateFormProps, - SotrageCreateFormState -> { - state = { - name: '' - } - nameInputRef = React.createRef() - - updateName = () => { - this.setState({ - name: this.nameInputRef.current!.value - }) - } - - createStorage = async () => { - const { createStorage } = this.props - await createStorage(this.state.name) - this.setState({ - name: '' - }) - } - - render() { - return ( -
- - - -
- ) - } -} diff --git a/src/components/Storage/StorageCreate.tsx b/src/components/Storage/StorageCreate.tsx index 25baa71c0c..bfb8a9883d 100644 --- a/src/components/Storage/StorageCreate.tsx +++ b/src/components/Storage/StorageCreate.tsx @@ -11,6 +11,7 @@ import { useTranslation } from 'react-i18next' import { useDb } from '../../lib/db' import LoginButton from '../atoms/LoginButton' import { useToast } from '../../lib/toast' +import { useRouter } from '../../lib/router' export default () => { const db = useDb() @@ -19,6 +20,7 @@ export default () => { const { t } = useTranslation() const [name, setName] = useState('') const [storageType, setStorageType] = useState<'cloud' | 'local'>('cloud') + const { push } = useRouter() const user = preferences['general.accounts'][0] @@ -28,7 +30,8 @@ export default () => { // editStoragePage edits cloud storage directly // update local -> update cloud -> on fail -> revert local try { - await db.createStorage(name, storageType) + const storage = await db.createStorage(name, storageType) + push(`/app/storages/${storage.id}/notes`) } catch { pushMessage({ title: 'Cloud Error',