diff --git a/src/components/SideNavigator/SideNavigator.tsx b/src/components/SideNavigator/SideNavigator.tsx
index 9539409ba4..87effb833a 100644
--- a/src/components/SideNavigator/SideNavigator.tsx
+++ b/src/components/SideNavigator/SideNavigator.tsx
@@ -31,6 +31,7 @@ import {
IconBook,
IconStarActive
} from '../icons'
+import { getStorageItemId } from '../../lib/nav'
const Description = styled.nav`
margin-left: 15px;
@@ -212,7 +213,7 @@ export default () => {
{storageEntries.map(([, storage]) => {
- const itemId = `storage:${storage.id}`
+ const itemId = getStorageItemId(storage.id)
const storageIsFolded = !sideNavOpenedItemSet.has(itemId)
const showPromptToCreateFolder = (folderPathname: string) => {
prompt({
diff --git a/src/lib/generalStatus.ts b/src/lib/generalStatus.ts
index 3d73f45783..8105000d59 100644
--- a/src/lib/generalStatus.ts
+++ b/src/lib/generalStatus.ts
@@ -3,7 +3,7 @@ import { localLiteStorage } from 'ltstrg'
import { useSetState } from 'react-use'
import { generalStatusKey } from './localStorageKeys'
import { createStoreContext } from './context'
-import { getFolderItemId } from './nav'
+import { getFolderItemId, getStorageItemId } from './nav'
export type ViewModeType = 'edit' | 'preview' | 'split'
@@ -91,6 +91,7 @@ function useGeneralStatusStore() {
const folderPathElements = folderPathname.slice(1).split('/')
const itemIdListToOpen = []
let currentPathname = ''
+ itemIdListToOpen.push(getStorageItemId(storageId))
for (const element of folderPathElements) {
currentPathname = `${currentPathname}/${element}`
itemIdListToOpen.push(getFolderItemId(storageId, currentPathname))
diff --git a/src/lib/nav.ts b/src/lib/nav.ts
index e3cbecdef9..e76540c420 100644
--- a/src/lib/nav.ts
+++ b/src/lib/nav.ts
@@ -1,7 +1,11 @@
+export function getStorageItemId(storageId: string) {
+ return `storage:${storageId}`
+}
+
export function getFolderItemId(storageId: string, folderPathname: string) {
- return `storage:${storageId}/folder:${folderPathname}`
+ return `${getStorageItemId(storageId)}/folder:${folderPathname}`
}
export function getTagListItemId(storageId: string) {
- return `storage:${storageId}/tags`
+ return `${getStorageItemId(storageId)}/tags`
}
diff --git a/src/lib/specs/nav.spec.ts b/src/lib/specs/nav.spec.ts
new file mode 100644
index 0000000000..eb36863f37
--- /dev/null
+++ b/src/lib/specs/nav.spec.ts
@@ -0,0 +1,21 @@
+import { getStorageItemId, getFolderItemId, getTagListItemId } from '../nav'
+
+describe('getStorageItemId', () => {
+ it('returns a correct storage path', () => {
+ expect(getStorageItemId('test_storage')).toBe('storage:test_storage')
+ })
+})
+
+describe('getFolderItemId', () => {
+ it('returns a correct folder item path', () => {
+ expect(getFolderItemId('test_storage', 'test_folder')).toBe(
+ 'storage:test_storage/folder:test_folder'
+ )
+ })
+})
+
+describe('getTagListItemId', () => {
+ it('returns a correct tags path', () => {
+ expect(getTagListItemId('test_storage')).toBe('storage:test_storage/tags')
+ })
+})