* Pass parsed query params as props to components
* Pass parsed query params to fetchInitialData
* Pass router Match to fetchInitialData
* Cast individual routes to their concrete types
Adds an IRoutePropsWithFetch definition for routes with getQueryParams
or fetchInitialData to cause compiler errors when the types no longer
match.
* Don't double decode query parameters.
Problem: A search for "%ab" produces a url with "%25ab". Refreshing
the page results in URLSearchParams turning "%25ab" back into "%ab".
decodeURIComponent() then complains about "%ab" being malformed.
This removes decodeURIComponent() calls for query parameters and
composes all query strings with getQueryString(), which now uses
URLSearchParams. Query parsing already goes through getQueryParams()
which also uses URLSearchParams.
* Fix for PictrsImage when src also has query params
* Small getQueryParams cleanup
* Add banned blurb to community sidebar
* Hide interactable parts of posts and comments when banned from community
* Add translation
* Fix some typescript errors
* Fix typescript errors
* PR feedback
* Set data-bs-theme attribute from Theme component
* Handle temporary theme changes in Theme component
* Fetch theme list on AdminSettings component mount
* Include CodeTheme in Theme component
* Improve handling of browser-compact theme
---------
Co-authored-by: SleeplessOne1917 <28871516+SleeplessOne1917@users.noreply.github.com>
* Lazy load i18n translations.
* Lazy load date-fns
* Fix inconsistent DOMContentLoaded event.
Only when no translations and date-fns have to be dynamically loaded
(e.g. for en-US) the NavBar `componentDidMount` is early enough to
listen for "DOMContentLoaded".
Removes one redundant `requestNotificationPermission()` call.
* Rename interface language code "pt_BR" to "pt-BR".
Browsers ask for "pt-BR", but the "interface_language" saved in the
settings dialog asks for "pt_BR". This change will make the settings
dialog ask for "pt-BR" instead of "pt_BR". For users that already (or
still) have "pt_BR" configured, "pt-BR" will be used, but the settings
dialog will present it as unspecified.
* Use Accept-Language request header
* Prefetch translation and date-fns
---------
Co-authored-by: SleeplessOne1917 <28871516+SleeplessOne1917@users.noreply.github.com>
* Fix remove post dialog
* Consolidate mod action logic
* Make mod action form less janky
* Move content action dropdown to its own component
* Make reusable component for content action buttons
* Finish up mod dropdown
* Introduce new content dropdown component to post listing
* Fix cancel moderation button bug
* Add icons, tweak UI
* Handle delete/undelete icons
* The thing
* Fix some of the banning related bugs
* Fix mod form ban bugs
* Fix some more bugs
* Make comments use dropdown menu
* Use mod action form with comments
* Make confirmation modal
* Make all the mod action dialogs modals
* Tweak modal
* Fix bug with mod form submit
* Tweak modal more
* More modal tweaking and some feedback toasts
* Use icon pairs for on/off
* Make modals auto focus input
* Implement PR suggestions
* Make UI use async functions where needed
* Make loading state for context action modals
* Hide context actions that users should not be able to do
* Add loading state to confirmation modals
* Use updated translations
* PR feedback
* Add forgotten trnslations
* Fix scrolling bug
---------
Co-authored-by: SleeplessOne <insomnia-void@protonmail.com>
* Trying more ssr fixes. #2243
* Try to enforce cross-fetch again.
* Try to forward cookies.
* Try to forward cookies 2.
* Trying a new cross-fetch.
* Fixing headers
* Fixing some auth issues.
* Fixing isBanned.
* Fix shutdown.
* Pushing up some tries.
* Moving lemmyclient building into fetchInitialData functions.
* OUpdated the regex for isAuthPath to reduce false positive hits as described in issue #1704
* Updated the regex for isAuthPath to reduce false positive hits - Re-ran Linting