mirror of
https://github.com/gpxstudio/gpx.studio.git
synced 2025-12-02 10:02:12 +00:00
Compare commits
2 Commits
0f7f64fb2f
...
30e72db5ea
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
30e72db5ea | ||
|
|
c4c64c8fe8 |
@@ -45,7 +45,7 @@
|
||||
<ScrollArea
|
||||
class="shrink-0 {orientation === 'vertical' ? 'p-0 pr-3' : 'h-10 px-1'}"
|
||||
{orientation}
|
||||
scrollbarXClasses={orientation === 'vertical' ? '' : 'mt-1 h-2'}
|
||||
scrollbarXClasses={orientation === 'vertical' ? '' : 'hidden'}
|
||||
scrollbarYClasses={orientation === 'vertical' ? '' : ''}
|
||||
>
|
||||
<div
|
||||
|
||||
@@ -56,8 +56,12 @@ export class GPXFileStateCollection {
|
||||
this._files = writable(new Map());
|
||||
}
|
||||
|
||||
connectToDatabase(db: Database) {
|
||||
if (this._subscription) return;
|
||||
connectToDatabase(db: Database): Promise<void> {
|
||||
return new Promise((resolve) => {
|
||||
if (this._subscription) {
|
||||
resolve();
|
||||
return;
|
||||
}
|
||||
this._subscription = liveQuery(() => db.fileids.toArray()).subscribe((dbFileIds) => {
|
||||
const currentFiles = get(this._files);
|
||||
// Find new files to observe
|
||||
@@ -85,7 +89,9 @@ export class GPXFileStateCollection {
|
||||
});
|
||||
|
||||
// Update the file order
|
||||
let fileOrder = get(settings.fileOrder).filter((id) => !deletedFiles.includes(id));
|
||||
let fileOrder = get(settings.fileOrder).filter(
|
||||
(id) => !deletedFiles.includes(id)
|
||||
);
|
||||
newFiles.forEach((id) => {
|
||||
if (!fileOrder.includes(id)) {
|
||||
fileOrder.push(id);
|
||||
@@ -93,6 +99,8 @@ export class GPXFileStateCollection {
|
||||
});
|
||||
settings.fileOrder.set(fileOrder);
|
||||
}
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -32,7 +32,9 @@
|
||||
elevationFill,
|
||||
} = settings;
|
||||
|
||||
onMount(() => {
|
||||
onMount(async () => {
|
||||
settings.connectToDatabase(db);
|
||||
fileStateCollection.connectToDatabase(db).then(() => {
|
||||
let files: string[] = JSON.parse(page.url.searchParams.get('files') || '[]');
|
||||
let ids: string[] = JSON.parse(page.url.searchParams.get('ids') || '[]');
|
||||
let urls: string[] = files.concat(ids.map(getURLForGoogleDriveFile));
|
||||
@@ -51,9 +53,7 @@
|
||||
loadFiles(files.filter((file) => file !== null));
|
||||
});
|
||||
}
|
||||
|
||||
settings.connectToDatabase(db);
|
||||
fileStateCollection.connectToDatabase(db);
|
||||
});
|
||||
});
|
||||
|
||||
onDestroy(() => {
|
||||
|
||||
Reference in New Issue
Block a user