Ben Schlegel
2023-09-15 91f9ae2d71d5c28ba7d2182eed5a9f77da1fbe8d
refs
author Ben Schlegel <31989404+benschlegel@users.noreply.github.com>
Friday, September 15, 2023 16:39 +0000
committer GitHub <noreply@github.com>
Friday, September 15, 2023 16:39 +0000
commit91f9ae2d71d5c28ba7d2182eed5a9f77da1fbe8d
tree 7a6f8b8b739a9426724955a50b8616315a6de735 tree | zip | gz
parent 14cbbdb8a2f69ebc51cd53a82b50206c543778b0 view | diff
feat: implement file explorer component (closes #201) (#452)

* feat: add basic explorer structure„

* feat: integrate new component/plugin

* feat: add basic explorer structure

* feat: add sort to FileNodes

* style: improve style for explorer

* refactor: remove unused explorer plugin

* refactor: clean explorer structure, fix base (toc)

* refactor: clean css, respect displayClass

* style: add styling to chevron

* refactor: clean up debug statements

* refactor: remove unused import

* fix: clicking folder icon sometimes turns invisible

* refactor: clean css

* feat(explorer): add config for title

* feat: add config for folder click behavior

* fix: `no-pointer` not being set for all elements

new approach, have one `no-pointer` class, that removes pointer events and one `clickable` class on the svg and button (everything that can normally be clicked). then, find all children with `clickable` and toggle `no-pointer`

* fix: bug where nested folders got incorrect height

this fixes the bug where nested folders weren't calculating their total height correctly. done by adding class to main container of all children and calculating total

* feat: introduce `folderDefaultState` config

* feat: store depth for explorer nodes

* feat: implement option for collapsed state + bug fixes

folderBehavior: "link" still has bad styling, but major bugs with pointers fixed (not clean yet, but working)

* fix: default folder icon rotation

* fix: hitbox problem with folder links, fix style

* fix: redirect url for nested folders

* fix: inconsistent behavior with 'collapseFolders' opt

* chore: add comments to `ExplorerNode`

* feat: save explorer state to local storage (not clean)

* feat: rework `getFolders()`, fix localstorage read + write

* feat: set folder state from localStorage

needs serious refactoring but functional (except folder icon orientation)

* fix: folder icon orientation after local storage

* feat: add config for `useSavedState`

* refactor: clean `explorer.inline.ts`

remove unused functions, comments, unused code, add types to EventHandler

* refactor: clean explorer

merge `isSvg` paths, remove console logs

* refactor: add documentation, remove unused funcs

* feat: rework folder collapse logic

use grids instead of jank scuffed solution with calculating total heights

* refactor: remove depth arg from insert

* feat: restore collapse functionality to clicks

allow folder icon + folder label to collapse folders again

* refactor: remove `pointer-event` jank

* feat: improve svg viewbox + remove unused props

* feat: use css selector to toggle icon

rework folder icon to work purely with css instead of JS manipulation

* refactor: remove unused cfg

* feat: move TOC to right sidebar

* refactor: clean css

* style: fix overflow + overflow margin

* fix: use `resolveRelative` to resolve file paths

* fix: `defaultFolderState` config option

* refactor: rename import, rename `folderLi` + ul

* fix: use `QuartzPluginData` type

* docs: add explorer documentation
5 files added
3 files modified
595 ■■■■■ changed files
docs/features/explorer.md 41 ●●●●● diff | view | raw | blame | history
quartz.layout.ts 8 ●●●● diff | view | raw | blame | history
quartz/components/Explorer.tsx 70 ●●●●● diff | view | raw | blame | history
quartz/components/ExplorerNode.tsx 196 ●●●●● diff | view | raw | blame | history
quartz/components/index.ts 2 ●●●●● diff | view | raw | blame | history
quartz/components/scripts/explorer.inline.ts 141 ●●●●● diff | view | raw | blame | history
quartz/components/styles/explorer.scss 133 ●●●●● diff | view | raw | blame | history
quartz/styles/base.scss 4 ●●●● diff | view | raw | blame | history