refactor: solid account settings (@fehmer)#8090
Open
fehmer wants to merge 26 commits into
Open
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Refactors Account Settings frontend from legacy DOM/page code to SolidJS components + URL-param driven tab state, and centralizes the Setting UI component for reuse.
Changes:
- Replace legacy
/account-settingspage implementation with SolidAccountSettingsPage+ per-tab components +states/account-settingsURL syncing. - Introduce
collections/ape-keys(tanstack/solid-db) and new Ape Keys tab UI. - Refactor shared
Settingcomponent intocomponents/common/Settingand update Settings page/custom settings to import it.
Reviewed changes
Copilot reviewed 48 out of 48 changed files in this pull request and generated 11 comments.
Show a summary per file
| File | Description |
|---|---|
| frontend/src/ts/states/leaderboard-selection.ts | Rename URL-param reader for clarity (readLeaderboardGetParameters). |
| frontend/src/ts/states/account-settings.ts | New Solid state for account settings tabs + URL param sync + ape key denial state. |
| frontend/src/ts/pages/account-settings.ts | Deleted legacy account-settings page controller. |
| frontend/src/ts/controllers/page-controller.ts | Route accountSettings via solidPage + hook URL params into new state. |
| frontend/src/ts/components/ui/table/DataTable.tsx | Attempt to improve table reactivity by memoizing data/table + adjust default row id. |
| frontend/src/ts/components/pages/settings/SettingsPage.tsx | Switch Setting import to shared common component. |
| frontend/src/ts/components/pages/settings/Setting.tsx | Deleted old Settings-only Setting component. |
| frontend/src/ts/components/pages/settings/custom-setting/Theme.tsx | Switch Setting import to common component. |
| frontend/src/ts/components/pages/settings/custom-setting/Tags.tsx | Switch Setting import to common component. |
| frontend/src/ts/components/pages/settings/custom-setting/SoundVolume.tsx | Switch Setting import to common component. |
| frontend/src/ts/components/pages/settings/custom-setting/Presets.tsx | Switch Setting import to common component. |
| frontend/src/ts/components/pages/settings/custom-setting/PaceCaret.tsx | Switch Setting import to common component. |
| frontend/src/ts/components/pages/settings/custom-setting/MinSpeed.tsx | Switch Setting import to common component. |
| frontend/src/ts/components/pages/settings/custom-setting/MinBurst.tsx | Switch Setting import to common component. |
| frontend/src/ts/components/pages/settings/custom-setting/MinAcc.tsx | Switch Setting import to common component. |
| frontend/src/ts/components/pages/settings/custom-setting/MaxLineWidth.tsx | Switch Setting import to common component. |
| frontend/src/ts/components/pages/settings/custom-setting/Layout.tsx | Switch Setting import to common component. |
| frontend/src/ts/components/pages/settings/custom-setting/Language.tsx | Switch Setting import to common component. |
| frontend/src/ts/components/pages/settings/custom-setting/KeymapSize.tsx | Switch Setting import to common component. |
| frontend/src/ts/components/pages/settings/custom-setting/KeymapLayout.tsx | Switch Setting import to common component. |
| frontend/src/ts/components/pages/settings/custom-setting/ImportExport.tsx | Switch Setting import to common component. |
| frontend/src/ts/components/pages/settings/custom-setting/Funbox.tsx | Switch Setting import to common component. |
| frontend/src/ts/components/pages/settings/custom-setting/FontFamily.tsx | Switch Setting import to common component. |
| frontend/src/ts/components/pages/settings/custom-setting/CustomPolyglot.tsx | Switch Setting import to common component. |
| frontend/src/ts/components/pages/settings/custom-setting/CustomLayoutfluid.tsx | Switch Setting import to common component. |
| frontend/src/ts/components/pages/settings/custom-setting/CustomBackgroundFilters.tsx | Switch Setting import to common component. |
| frontend/src/ts/components/pages/settings/custom-setting/CustomBackground.tsx | Switch Setting import to common component. |
| frontend/src/ts/components/pages/settings/custom-setting/AutoSwitchTheme.tsx | Switch Setting import to common component. |
| frontend/src/ts/components/pages/settings/custom-setting/AnimationFpsLimit.tsx | Switch Setting import to common component. |
| frontend/src/ts/components/pages/connections/PendingRequests.tsx | Stop cloning data array at call site (relies on DataTable behavior). |
| frontend/src/ts/components/pages/account-settings/utils.tsx | New Section wrapper around common Setting. |
| frontend/src/ts/components/pages/account-settings/DangerZoneTab.tsx | New Solid Danger Zone tab UI. |
| frontend/src/ts/components/pages/account-settings/BlockedUsersTab.tsx | New Solid Blocked Users tab UI. |
| frontend/src/ts/components/pages/account-settings/AuthenticationTab.tsx | New Solid Authentication tab UI. |
| frontend/src/ts/components/pages/account-settings/ApeKeysTab.tsx | New Solid Ape Keys tab UI (uses new collection + DataTable). |
| frontend/src/ts/components/pages/account-settings/AccountTab.tsx | New Solid Account tab UI (Discord link + other actions). |
| frontend/src/ts/components/pages/account-settings/AccountSettingsPage.tsx | New Solid Account Settings page layout + sidebar tab switching. |
| frontend/src/ts/components/mount.tsx | Register new account settings page component for mounting. |
| frontend/src/ts/components/modals/account-settings/UpdateNameModal.tsx | Adjust snapshot source + remove reload-after behavior. |
| frontend/src/ts/components/modals/account-settings/RemoveAuthMethodModal.tsx | Remove callback/reload-after behavior. |
| frontend/src/ts/components/modals/account-settings/AddPasswordAuthModal.tsx | Delegate password-provider add flow to addAuthProvider. |
| frontend/src/ts/components/common/Setting.tsx | New shared Setting component (moved from settings page folder). |
| frontend/src/ts/collections/ape-keys.ts | New Solid DB collection + optimistic actions for Ape Keys. |
| frontend/src/ts/auth.tsx | Add reactive auth-method helpers + refactor provider linking + icon metadata. |
| frontend/src/styles/index.scss | Remove legacy account-settings stylesheet import. |
| frontend/src/styles/account-settings.scss | Deleted legacy account-settings SCSS. |
| frontend/src/index.html | Replace <load ...account-settings.html> with mountpoint for Solid page. |
| frontend/src/html/pages/account-settings.html | Deleted legacy account-settings HTML page. |
Comments suppressed due to low confidence (1)
frontend/src/ts/components/pages/account-settings/BlockedUsersTab.tsx:27
- TSX syntax error: JSX fragments must be passed as expressions (with
{}), e.g.description={<></>}.
Comment on lines
+106
to
+107
| // Ensure reactivity: always produce a fresh array reference | ||
| const data = createMemo(() => props.data.map((it) => ({ ...it }))); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.