From 0f9baafbc3591c4e7a849c25f561f383d5c82edb Mon Sep 17 00:00:00 2001 From: Nilesh Date: Thu, 29 Dec 2022 23:52:49 +0000 Subject: [PATCH] Fix #36 Use real masonry layout using svelte-bricks --- package-lock.json | 13 ++++++ package.json | 1 + src/MasonryItem.svelte | 57 ++++++++++++++++++++++++++ src/TopicMasonryGrid.svelte | 82 +++++++++++++------------------------ 4 files changed, 99 insertions(+), 54 deletions(-) create mode 100644 src/MasonryItem.svelte diff --git a/package-lock.json b/package-lock.json index e8eaf51..0a49544 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,6 +15,7 @@ "d3-hierarchy": "^3.1.2", "marked": "^4.2.4", "svelte": "^3.55.0", + "svelte-bricks": "^0.1.7", "vite": "^4.0.3" } }, @@ -797,6 +798,12 @@ "node": ">= 8" } }, + "node_modules/svelte-bricks": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/svelte-bricks/-/svelte-bricks-0.1.7.tgz", + "integrity": "sha512-2wJseuhlVYVRoCKJGQuwCySTMsvBVS4dchah6Ecz9RNng0zufx6NxToXc7iGf0QOHjo9wwAsOczRI+Ou2q4gEg==", + "dev": true + }, "node_modules/svelte-hmr": { "version": "0.15.1", "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.15.1.tgz", @@ -1387,6 +1394,12 @@ "integrity": "sha512-uGu2FVMlOuey4JoKHKrpZFkoYyj0VLjJdz47zX5+gVK5odxHM40RVhar9/iK2YFRVxvfg9FkhfVlR0sjeIrOiA==", "dev": true }, + "svelte-bricks": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/svelte-bricks/-/svelte-bricks-0.1.7.tgz", + "integrity": "sha512-2wJseuhlVYVRoCKJGQuwCySTMsvBVS4dchah6Ecz9RNng0zufx6NxToXc7iGf0QOHjo9wwAsOczRI+Ou2q4gEg==", + "dev": true + }, "svelte-hmr": { "version": "0.15.1", "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.15.1.tgz", diff --git a/package.json b/package.json index fa5817f..f34a93f 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ "d3-hierarchy": "^3.1.2", "marked": "^4.2.4", "svelte": "^3.55.0", + "svelte-bricks": "^0.1.7", "vite": "^4.0.3" } } diff --git a/src/MasonryItem.svelte b/src/MasonryItem.svelte new file mode 100644 index 0000000..e956d3f --- /dev/null +++ b/src/MasonryItem.svelte @@ -0,0 +1,57 @@ + + +{#if parent && parent[0] !== 'Misc'} + +
+ {#if typeof(parent[0]) == "string"} + { parent[0] } + {:else} + + + {/if} + +
+ {#each parent[1].sort((t1,t2) => (t1.name.localeCompare(t2.name))) as child} + {format_topic_name(child)} + {/each} +
+
+ +{/if} + +{#if parent && parent[0] == 'Misc'} +
+ {#if typeof(parent[0]) == "string"} + { parent[0] } + {:else} + { format_topic_name(parent[0]) } + {/if} + +
+ {#each parent[1].sort((t1,t2) => (t1.sort_index || 100) - (t2.sort_index || 100)) as child} + {format_topic_name(child)} + {/each} +
+
+{/if} \ No newline at end of file diff --git a/src/TopicMasonryGrid.svelte b/src/TopicMasonryGrid.svelte index 587bb43..54ccebc 100644 --- a/src/TopicMasonryGrid.svelte +++ b/src/TopicMasonryGrid.svelte @@ -1,4 +1,11 @@ @@ -99,47 +102,18 @@ {/if} -
- {#each [...map.entries()].sort((t1,t2) => (t1[0].sort_index || 100) - (t2[0].sort_index || 100)) as parent} - {#if parent[0] !== 'Misc'} - -
- {#if typeof(parent[0]) == "string"} - { parent[0] } - {:else} - - - {/if} - -
- {#each parent[1].sort((t1,t2) => (t1.name.localeCompare(t2.name))) as child} - {format_topic_name(child)} - {/each} -
-
- - {/if} - - {#if parent[0] == 'Misc'} -
- {#if typeof(parent[0]) == "string"} - { parent[0] } - {:else} - { format_topic_name(parent[0]) } - {/if} - -
- {#each parent[1].sort((t1,t2) => (t1.sort_index || 100) - (t2.sort_index || 100)) as child} - {format_topic_name(child)} - {/each} -
-
- {/if} - {/each} -
- +{#if parents} + + + +{/if}