fix closing a directory
This commit is contained in:
parent
cc8c3f8ad6
commit
79f2974c39
2 changed files with 9 additions and 2 deletions
|
@ -30,7 +30,8 @@ interface FilesContextType {
|
||||||
readonly root: Accessor<FileSystemDirectoryHandle | undefined>,
|
readonly root: Accessor<FileSystemDirectoryHandle | undefined>,
|
||||||
readonly loading: Accessor<boolean>,
|
readonly loading: Accessor<boolean>,
|
||||||
|
|
||||||
open(directory: FileSystemDirectoryHandle): void;
|
open(directory: FileSystemDirectoryHandle): Promise<void>;
|
||||||
|
close(): Promise<void>;
|
||||||
get(key: string): Accessor<FileSystemDirectoryHandle | undefined>
|
get(key: string): Accessor<FileSystemDirectoryHandle | undefined>
|
||||||
set(key: string, handle: FileSystemDirectoryHandle): Promise<void>;
|
set(key: string, handle: FileSystemDirectoryHandle): Promise<void>;
|
||||||
remove(key: string): Promise<void>;
|
remove(key: string): Promise<void>;
|
||||||
|
@ -140,6 +141,12 @@ export const FilesProvider: ParentComponent = (props) => {
|
||||||
await internal.set(ROOT, directory);
|
await internal.set(ROOT, directory);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
async close() {
|
||||||
|
setState('root', undefined);
|
||||||
|
|
||||||
|
await internal.remove(ROOT);
|
||||||
|
},
|
||||||
|
|
||||||
get(key: string): Accessor<FileSystemDirectoryHandle | undefined> {
|
get(key: string): Accessor<FileSystemDirectoryHandle | undefined> {
|
||||||
return createMemo(() => state.openedFiles.find(entity => entity.key === key)?.handle);
|
return createMemo(() => state.openedFiles.find(entity => entity.key === key)?.handle);
|
||||||
},
|
},
|
||||||
|
|
|
@ -242,7 +242,7 @@ const Editor: Component<{ root: FileSystemDirectoryHandle }> = (props) => {
|
||||||
await filesContext.open(directory);
|
await filesContext.open(directory);
|
||||||
}, { key: 'o', modifier: Modifier.Control }),
|
}, { key: 'o', modifier: Modifier.Control }),
|
||||||
close: createCommand('page.edit.command.close', async () => {
|
close: createCommand('page.edit.command.close', async () => {
|
||||||
filesContext.remove('__root__');
|
await filesContext.close();
|
||||||
}),
|
}),
|
||||||
closeTab: createCommand('page.edit.command.closeTab', async (id: string) => {
|
closeTab: createCommand('page.edit.command.closeTab', async (id: string) => {
|
||||||
filesContext.remove(id);
|
filesContext.remove(id);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue