* refactor: move to tanstack/react-query and fix cache
* refactor(releases): move to tanstack/react-query
* refactor(logs): move to tanstack/react-query
* refactor(base): move to tanstack/react-query
* refactor(base): move to tanstack/react-query
* refactor(dashboard): move to tanstack/react-query
* refactor(auth): move to tanstack/react-query
* refactor(filters): move to tanstack/react-query
* refactor(settings): move to tanstack/react-query
* chore(pkg): add tanstack/react-query
* refactor(filters): move to tanstack/react-query
* refactor: move to tanstack/react-query
* refactor: invalidate queries
* chore(pkg): remove old react-query
* chore: change imports to root prefixes
* build: remove needs web from test
* set enableReinitialize to true to fix formik caching issues
* fix all property for apiKeys const
* fix toast when enabling/disabling feed
---------
Co-authored-by: martylukyy <35452459+martylukyy@users.noreply.github.com>
* removed react-app type instead use vite.
* removed index.html from public since vite uses it from root: read more: https://vitejs.dev/guide/#index-html-and-project-root
* yarn.lock update.
* added vite config file. With commented rollUp option if we want the build to be called build but using default stuff for now.
* updated tsconfig to use vite and include vite.config.ts
* changed package json build commands to use vite.
* for some reason there is an error in vite config when we put project as tsconfig.json.
* build.go updated to use the new dist folder.
* refactored as well updated to use dist and web.AssetHandler again.
* Fixed issue forcing the frontend to be reloaded for all routes to work if logged in fresh without reloading it will always go back to dashboard.
* updated it to use the new function; need to fix the Index for baseUrl I believe, if enabled it works except logs route will crash due to cors.
* refactored and default port to 7474, don't think we need the rollUpOptions.
* added tmp/ to ignore .
* init air.toml, for dev hot reloading both app and backend. https://github.com/cosmtrek/air run it using air but make sure it's in PATH
* updated the start command to build and watch for changes, works great with air.
* revert
* added proxy for vite config. To be used for dev.
* fix: This fixes#117 Propagation bug.
* chore: update yarn lock
---------
Co-authored-by: KaiserBh <kaiserbh@proton.me>
Co-authored-by: ze0s <ze0s@riseup.net>
* removed react-app type instead use vite.
* removed index.html from public since vite uses it from root: read more: https://vitejs.dev/guide/#index-html-and-project-root
* yarn.lock update.
* added vite config file. With commented rollUp option if we want the build to be called build but using default stuff for now.
* updated tsconfig to use vite and include vite.config.ts
* changed package json build commands to use vite.
* for some reason there is an error in vite config when we put project as tsconfig.json.
* build.go updated to use the new dist folder.
* refactored as well updated to use dist and web.AssetHandler again.
* Fixed issue forcing the frontend to be reloaded for all routes to work if logged in fresh without reloading it will always go back to dashboard.
* updated it to use the new function; need to fix the Index for baseUrl I believe, if enabled it works except logs route will crash due to cors.
* refactored and default port to 7474, don't think we need the rollUpOptions.
* added tmp/ to ignore .
* init air.toml, for dev hot reloading both app and backend. https://github.com/cosmtrek/air run it using air but make sure it's in PATH
* updated the start command to build and watch for changes, works great with air.
* revert
* added proxy for vite config. To be used for dev.
* refactor: I think this should fix it, when logs route etc getting accessed usually it throws error but by getting rid of the catch-all it should work as intended, since web.RegisterHandler(r) will catch the unmatched ones.
* fix: baseurl and build
* fix(build): docker ignore !web/dist
* fix(build): dockerignore add exclusions
* docs: update README.md
* build: update postcss config
---------
Co-authored-by: KaiserBh <kaiserbh@proton.me>
Co-authored-by: ze0s <ze0s@riseup.net>
* Fixed button border in settings/download-clients
Button border for "Add new" is now uniform with other "Add new"-buttons
* enhancement(docs) add helper tooltips
- Add helper tooltips for inputs and link them to docs #161
* fix build error
* tooltips: changed positition
* hide tooltip below 640 width
* made tooltips better
now attaching to TextField names
* Added icon variation for MultiSelect and CheckboxField
* cleaned up old code
* refactor
Co-authored-by: ze0s <zze0s@users.noreply.github.com>
* added tooltips for DownloadClientForms
* added tooltips for indexerforms
* div for passwordfieldwide
* tooltips for details.tsx
* added tooltips to actions.tsx
* added tooltips to indexerforms.tsx
* replaced info icon with a more rudimentary one
* linting, removed duplicate tailwind display properties
* remove margin for flex centering
* fixed tooltip alignment on all fields
* add tooltip to PwFieldWide in indexer edit window
* refactor: simplify tooltips
* refactor: scope tooltip css
* refactor: tooltip default clickable
---------
Co-authored-by: martylukyy <35452459+martylukyy@users.noreply.github.com>
Co-authored-by: ze0s <43699394+zze0s@users.noreply.github.com>
* - fix: changed all {text,bg}-{teal,indigo}-* color properties to {text,bg}-{blue}-* so there is only one dominant primary color in the UI -- blue
- enhancement: added `cursor: pointer` to the PageButton component (used in pagination)
- enhancement: modified TitleCell to use the new Tooltip component and modified the width selectors to a more sane default value, now instead of scrolling one just has to tap the cell to see it's untruncated value
- enhancement: modified the Tooltip component to use react-popper-tooltip (which in turn uses popper.js) which is a much better alternative, since it uses auto-positioning in case there's not enough space and some things aren't as broken as in the previous version (e.g. there was a problem with forcing the previous tooltip to use a specific width)
- enhancement: added a useMedia hook selector from the react-use repository, which might come in handy in the future for better/easier decoupling of Desktop and Mobile UI/UX patterns via JS (versus CSS-only)
- enhancement: made the mobile navbar more visible and clear. also fixed previous path === "/" bug which was fixed on desktop.
- fix: fixed table headers/footers so they're rounded
- enhancement: made pagination components more compact (buttons and show N result selector)
* changed {ring, border}-indigo-* to ring-blue-*
* build: add yarn.lock
* fix: formatting warnings
* fix: formatting warnings
* fix: more formatting warnings
* fix: more formatting
* feat(irc): add irc status examples
* feat(irc): add dropdown menu to list
* feat(irc): update heroicons and add expand button
* feat(irc): update heroicons and add expand button
* Update Docker workflow
add buildx and qemu to support mulitarch builds
configure arm, arm64 and amd64 builds
* Change yarn timeout
fixes issue with yarn install timing out
* chore: update gitignore
* chore: add gitignore for web dir
* chore(web): upgrade to yarn2
* build: update actions and push docker hub
* build: add yarnrc and network-timeout
* build: unifi workflow
* build: depend on web to build first
* build: store artifacts between jobs
* build: store artifacts between jobs
* build: store artifacts between jobs
* build: store artifacts between jobs
* build: adjust dockerignore
* build: conditional extract metadata
* build: conditional extract metadata
* build: always push docker hub
* build: skip docker hub for now
* build: fix metadata
* fix: remove react-cookie since we can't delete the user_session cookie using JS (due to httponly being set)
* chore: update dependencies and set a global react dependency override (react-ridge-state creates a problem, this fixes it)
* chore: tidy up APIClient, login and logout pages
* fix: catch canOnboard() error in login.tsx
enhancement: add toast notify on intentional logout and nicely reset the context state; make sure screen-blinking is down to a minimum by having min-h-screen present.
* fix: let onboarding redirect to / instead of /login (/login isn't used anymore)
* fix: use normal <input /> caret cursor for SearchColumnFilter, instead of pointer
* chore(web): remove react-cookie package
* Started refactoring codebase for React 18.
* Migrated to react-router v6 fully
* Removed useless test setup along with relevant packages.
* Removed leftover console.log statement
* feat: use status forbidden for onboarding
* refactor(web): use react hook form on login
* fix: comply with r18 shenanigans
* chore: update packages
* fix(tsconfig.json): changed skipLibCheck to false.
refactor(eslint): moved configuration from package.json to .eslintrc.js and added a typescript plugin for future use
* feat: wip eslint and types
* feat: fix identation
* feat: get rid of last any types
* web: Added error handling. Fixed table overflow issues. Improved release status titles. Fixed a few bugs where certain forms/modals didn't close properly.
feat(web): Added react-error-boundary and stacktracey for handling errors. In case of a recoverable/non-state updating error, a notification is thrown, otherwise the user is shown an error page with the appropriate stack trace and error type and cause with the possibility of resolving the error by reseting the page's state.
enhancement(web/data-table/cells): Improved cell display behavior in tables -- it's now scrollable on mobile. Improved release status string readability.
enhancement(web/settings/Irc): Made IRC refetch interval every 3 seconds for those who are not patient.
fix(web/modals/DeleteModal): Fixed modal bug where it didn't close on button click.
fix(web/forms/IndexerForms): Fixed bug where the form didn't close on button click.
enhancement(web/ReleaseTable): Made the table more compact by utilizing 3em padding between cells instead of 6.
enhancement(web/ActivityTable): Ditto as above.
enhancement(web): Changed width of every page section from max-w-7xl (1280px to where applicable)
chore(web/dashboard/ActivityTable): Reformatted the file to a saner syntax.
enhancement(web/dashboard/StatsItem): Enlarged font size, set font to extrabold instead of bold and made padding consistent.
fix(web/navbar): Fixed bold font not showing properly on Firefox due to an argument ordering issue.
* chore: update pkg and fix broken proxy
* Removed recoil and replaced it with react-ridge-state, a 0.4kb alternative.
* Added AuthContext and SettingsContext persistent localStorage states.
* Fixed tailwind.config.js incorrect key directive. See https://tailwindcss.com/docs/content-configuration#safelisting-classes.
* Changed darkMode in Tailwind to "class" and started manually adjusting the theme according to the appropriate media query.
* Added possibility of changing the theme manually via the Settings tab.
* Changed Releases.tsx behavior to show the UI only when the HTTP request succeeded and there is some data (i.e. table is non-empty).
* Changed the table color of screens/filters/list.tsx to a one notch lighter shade of gray for eye-comfort.
* Replaced "User" in the header, with the users real username.
* Made data version, commit and date fields optional in settings/Application.tsx.
* Started working on a RegExp playground, which works fine, but JS won't cooperate and return the right match length. Either way, the RegExp must be implemented on backend and then must be communicated with the frontend. Otherwise a potential for incorrect results exists.
* Removed Layout.tsx, since it was redundant.
* Created a Checkbox component class for easier and consistent future use.
* Rewritten App.tsx, Login.tsx, Logout.tsx to accomodate for new changes.
* Fixed previous mistake regarding tailwind.config.js purge key, since we're still using old postcss7 from October last year
* Removed package-lock.json from both root and web directories.
* Refresh TypeScript configuration to support a types/ directory containing d.ts. The effect of this is that types don't have to be imported anymore and are at all times available globally. This also unifies them into a single source of truth, which will be a lot easier to manage in the future. Note: Only certain interop types have been moved at the time of writing.
* Fixed minor Checkbox argument mistake.
* fix: remove length from data check
* chore: lock files are annoying
* fix: select
* fix: wip release filtering
* chore: add packages
* chore: disable tailwind jit
* refactor: update base layout structure
* refactor: filter to single form with formik
* feat: save filter actions on save
* feat: disable form dirty