From aab65b573a1dbe8165816289ec8ec1593dbbf263 Mon Sep 17 00:00:00 2001 From: heaven Date: Thu, 4 Jun 2026 01:40:27 +0300 Subject: [PATCH] style(settings): group the General options into a Dawn hairline-divided section in room and space settings --- .../general/RoomEncryption.tsx | 145 ++++++++---------- .../general/RoomHistoryVisibility.tsx | 135 ++++++++-------- .../common-settings/general/RoomJoinRules.tsx | 57 +++---- .../common-settings/general/RoomPublish.tsx | 69 ++++----- .../room-settings/general/General.tsx | 6 +- .../space-settings/general/General.tsx | 6 +- 6 files changed, 191 insertions(+), 227 deletions(-) diff --git a/src/app/features/common-settings/general/RoomEncryption.tsx b/src/app/features/common-settings/general/RoomEncryption.tsx index fde639b7..2e533d52 100644 --- a/src/app/features/common-settings/general/RoomEncryption.tsx +++ b/src/app/features/common-settings/general/RoomEncryption.tsx @@ -20,8 +20,6 @@ import { MatrixError } from 'matrix-js-sdk'; import type { StateEvents } from 'matrix-js-sdk'; import FocusTrap from 'focus-trap-react'; import { useTranslation } from 'react-i18next'; -import { SequenceCard } from '../../../components/sequence-card'; -import { SequenceCardStyle } from '../../room-settings/styles.css'; import { SettingTile } from '../../../components/setting-tile'; import { useMatrixClient } from '../../../hooks/useMatrixClient'; import { StateEvent } from '../../../../types/matrix/room'; @@ -65,83 +63,76 @@ export function RoomEncryption({ permissions }: RoomEncryptionProps) { }; return ( - + {t('RoomSettings.enabled')} + + ) : ( + + ) + } > - - {t('RoomSettings.enabled')} - - ) : ( - - ) - } - > - {enableState.status === AsyncStatus.Error && ( - - {(enableState.error as MatrixError).message} - - )} - {prompt && ( - }> - - setPrompt(false), - clickOutsideDeactivates: true, - escapeDeactivates: stopPropagation, - }} - > - -
- - {t('RoomSettings.enable_encryption')} - - setPrompt(false)} radii="300"> - - -
- - {t('RoomSettings.enable_encryption_confirm')} - + +
+ + {t('RoomSettings.enable_encryption')} -
-
-
-
- )} -
-
+ setPrompt(false)} radii="300"> + + + + + {t('RoomSettings.enable_encryption_confirm')} + + + + + + + )} + ); } diff --git a/src/app/features/common-settings/general/RoomHistoryVisibility.tsx b/src/app/features/common-settings/general/RoomHistoryVisibility.tsx index 4af93e4e..a73f3f8e 100644 --- a/src/app/features/common-settings/general/RoomHistoryVisibility.tsx +++ b/src/app/features/common-settings/general/RoomHistoryVisibility.tsx @@ -17,8 +17,6 @@ import type { StateEvents } from 'matrix-js-sdk'; import { RoomHistoryVisibilityEventContent } from 'matrix-js-sdk/lib/types'; import FocusTrap from 'focus-trap-react'; import { useTranslation } from 'react-i18next'; -import { SequenceCard } from '../../../components/sequence-card'; -import { SequenceCardStyle } from '../../room-settings/styles.css'; import { SettingTile } from '../../../components/setting-tile'; import { useMatrixClient } from '../../../hooks/useMatrixClient'; import { useRoom } from '../../../hooks/useRoom'; @@ -98,77 +96,70 @@ export function RoomHistoryVisibility({ permissions }: RoomHistoryVisibilityProp }; return ( - - setMenuAnchor(undefined), - clickOutsideDeactivates: true, - isKeyForward: (evt: KeyboardEvent) => evt.key === 'ArrowDown', - isKeyBackward: (evt: KeyboardEvent) => evt.key === 'ArrowUp', - escapeDeactivates: stopPropagation, - }} - > - - {visibilityMenu.map((visibility) => ( - handleChange(visibility)} - aria-pressed={visibility === historyVisibility} - > - - {visibilityStr[visibility]} - - - ))} - - + setMenuAnchor(undefined), + clickOutsideDeactivates: true, + isKeyForward: (evt: KeyboardEvent) => evt.key === 'ArrowDown', + isKeyBackward: (evt: KeyboardEvent) => evt.key === 'ArrowUp', + escapeDeactivates: stopPropagation, + }} + > + + {visibilityMenu.map((visibility) => ( + handleChange(visibility)} + aria-pressed={visibility === historyVisibility} + > + + {visibilityStr[visibility]} + + + ))} + + + } + > + - - } - > - {submitState.status === AsyncStatus.Error && ( - - {(submitState.error as MatrixError).message} - - )} - - + {visibilityStr[historyVisibility]} + + + } + > + {submitState.status === AsyncStatus.Error && ( + + {(submitState.error as MatrixError).message} + + )} + ); } diff --git a/src/app/features/common-settings/general/RoomJoinRules.tsx b/src/app/features/common-settings/general/RoomJoinRules.tsx index 6279822e..815c393b 100644 --- a/src/app/features/common-settings/general/RoomJoinRules.tsx +++ b/src/app/features/common-settings/general/RoomJoinRules.tsx @@ -11,8 +11,6 @@ import { useJoinRuleIcons, useRoomJoinRuleLabel, } from '../../../components/JoinRulesSwitcher'; -import { SequenceCard } from '../../../components/sequence-card'; -import { SequenceCardStyle } from '../../room-settings/styles.css'; import { SettingTile } from '../../../components/setting-tile'; import { useMatrixClient } from '../../../hooks/useMatrixClient'; import { useRoom } from '../../../hooks/useRoom'; @@ -123,37 +121,30 @@ export function RoomJoinRules({ permissions }: RoomJoinRulesProps) { const submitting = submitState.status === AsyncStatus.Loading; return ( - + } > - - } - > - {submitState.status === AsyncStatus.Error && ( - - {(submitState.error as MatrixError).message} - - )} - - + {submitState.status === AsyncStatus.Error && ( + + {(submitState.error as MatrixError).message} + + )} + ); } diff --git a/src/app/features/common-settings/general/RoomPublish.tsx b/src/app/features/common-settings/general/RoomPublish.tsx index ef90330d..f46a050c 100644 --- a/src/app/features/common-settings/general/RoomPublish.tsx +++ b/src/app/features/common-settings/general/RoomPublish.tsx @@ -3,8 +3,6 @@ import { Box, color, Spinner, Switch, Text } from 'folds'; import { useTranslation } from 'react-i18next'; import { JoinRule, MatrixError } from 'matrix-js-sdk'; import { RoomJoinRulesEventContent } from 'matrix-js-sdk/lib/types'; -import { SequenceCard } from '../../../components/sequence-card'; -import { SequenceCardStyle } from '../../room-settings/styles.css'; import { SettingTile } from '../../../components/setting-tile'; import { useRoom } from '../../../hooks/useRoom'; import { useRoomDirectoryVisibility } from '../../../hooks/useRoomDirectoryVisibility'; @@ -41,44 +39,37 @@ export function RoomPublish({ permissions }: RoomPublishProps) { rule === JoinRule.Public || rule === JoinRule.Knock || rule === 'knock_restricted'; return ( - + {loading && } + {!loading && visibilityState.status === AsyncStatus.Success && ( + + )} + + } > - - {loading && } - {!loading && visibilityState.status === AsyncStatus.Success && ( - - )} - - } - > - {visibilityState.status === AsyncStatus.Error && ( - - {(visibilityState.error as MatrixError).message} - - )} + {visibilityState.status === AsyncStatus.Error && ( + + {(visibilityState.error as MatrixError).message} + + )} - {toggleState.status === AsyncStatus.Error && ( - - {(toggleState.error as MatrixError).message} - - )} - - + {toggleState.status === AsyncStatus.Error && ( + + {(toggleState.error as MatrixError).message} + + )} + ); } diff --git a/src/app/features/room-settings/general/General.tsx b/src/app/features/room-settings/general/General.tsx index 51926191..cf65960c 100644 --- a/src/app/features/room-settings/general/General.tsx +++ b/src/app/features/room-settings/general/General.tsx @@ -2,6 +2,7 @@ import React from 'react'; import { Box, Icon, IconButton, Icons, Scroll, Text } from 'folds'; import { useTranslation } from 'react-i18next'; import { Page, PageContent, PageHeader } from '../../../components/page'; +import { SettingsSection } from '../../settings/SettingsSection'; import { usePowerLevels } from '../../../hooks/usePowerLevels'; import { useRoom } from '../../../hooks/useRoom'; import { @@ -48,13 +49,12 @@ export function General({ requestClose }: GeneralProps) { - - {t('RoomSettings.options')} + - + {t('RoomSettings.addresses')} diff --git a/src/app/features/space-settings/general/General.tsx b/src/app/features/space-settings/general/General.tsx index 37142e6a..b87e9cb4 100644 --- a/src/app/features/space-settings/general/General.tsx +++ b/src/app/features/space-settings/general/General.tsx @@ -2,6 +2,7 @@ import React from 'react'; import { Box, Icon, IconButton, Icons, Scroll, Text } from 'folds'; import { useTranslation } from 'react-i18next'; import { Page, PageContent, PageHeader } from '../../../components/page'; +import { SettingsSection } from '../../settings/SettingsSection'; import { usePowerLevels } from '../../../hooks/usePowerLevels'; import { useRoom } from '../../../hooks/useRoom'; import { @@ -46,11 +47,10 @@ export function General({ requestClose }: GeneralProps) { - - {t('RoomSettings.options')} + - + {t('RoomSettings.addresses')}