Start the app in the dev environment. This starts the renderer process in hot-module-replacement mode and starts a webpack dev server that sends hot updates to the renderer process:
npm run dev
Test
Run unit tests using the jest-cli via npm scripts:
# unit tests
npm run test
# watch
npm run test --watch
# test coverage
npm run test --coverage
NOTE: More on the jest-cli here: https://jestjs.io/docs/en/cli
Packaging for Production
To package apps for the local platform:
npm run package
Release
Run npm run release to run the semver release process
Run git push --follow-tags origin <branch>
Craft a new draft release on GitHub with the tag created in Step 1
Create a PR and merge changes
Publish the GitHub release
TODO (In no particular order)
[x] Top Bar
[x] Modal Controls
[x] Gallery Nav
[x] Search
[x] Sort
[x] Modules
[x] Auth
[ ] Themes
[x] Local file system
[ ] Breadcrumbs
[ ] Settings Page
[ ] Error Handling + Images
[x] Route Transitions
[ ] Fix item tags
[ ] Fetch item tags
[ ] Handle video + image loading errors
[x] Prev/next button hiding + search hiding
[ ] Hide sort/filter buttons when necessary
[x] Use skeletons instead of spinner for Masonry
[x] Use skeletons instead of spinner for Filters
[ ] Use skeletons instead of spinner for Modules
[ ] Add snackbar (toasts) for End of scroll + Errors + Download
[x] Video volume sync
[x] Update all zustand syntax
[ ] Use route for modal: https://stackblitz.com/github/remix-run/react-router/tree/main/examples/modal?file=src/App.tsx
[x] Pause videos when modal opens
[ ] Start modal video at same time (maybe pause when zooming instead of showing poster?)