From b04a3851cca0576bf0e069e544a9f120d8beb910 Mon Sep 17 00:00:00 2001 From: Coding On Star <447357187@qq.com> Date: Fri, 15 May 2026 15:17:23 +0800 Subject: [PATCH] refactor: enhance layout and scrolling behavior in various modals for improved user experience (#36210) Co-authored-by: CodingOnStar Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- eslint-suppressions.json | 5 - .../app/overview/customize/index.tsx | 128 +++++++++--------- .../app/overview/embedded/index.tsx | 6 +- .../app/overview/settings/index.tsx | 8 +- .../pricing/plans/cloud-plan-item/index.tsx | 2 +- .../external-api/external-api-modal/index.tsx | 12 +- .../edit-workspace-modal/index.tsx | 2 +- .../members-page/invite-modal/index.tsx | 17 +-- 8 files changed, 85 insertions(+), 95 deletions(-) diff --git a/eslint-suppressions.json b/eslint-suppressions.json index b17c435984..e169248299 100644 --- a/eslint-suppressions.json +++ b/eslint-suppressions.json @@ -2273,11 +2273,6 @@ "count": 1 } }, - "web/app/components/header/account-setting/members-page/invite-modal/index.tsx": { - "react/set-state-in-effect": { - "count": 3 - } - }, "web/app/components/header/account-setting/members-page/transfer-ownership-modal/index.tsx": { "erasable-syntax-only/enums": { "count": 1 diff --git a/web/app/components/app/overview/customize/index.tsx b/web/app/components/app/overview/customize/index.tsx index 89b621f32b..e27e1e7653 100644 --- a/web/app/components/app/overview/customize/index.tsx +++ b/web/app/components/app/overview/customize/index.tsx @@ -46,78 +46,80 @@ const CustomizeModal: FC = ({ return ( !open && onClose()}> - - + + {t(`${prefixCustomize}.title`, { ns: 'appOverview' })} - + {t(`${prefixCustomize}.explanation`, { ns: 'appOverview' })} -
- - {t(`${prefixCustomize}.way`, { ns: 'appOverview' })} - {' '} - 1 - -

{t(`${prefixCustomize}.way1.name`, { ns: 'appOverview' })}

-
- 1 -
-
{t(`${prefixCustomize}.way1.step1`, { ns: 'appOverview' })}
-
{t(`${prefixCustomize}.way1.step1Tip`, { ns: 'appOverview' })}
- +
+
+ + {t(`${prefixCustomize}.way`, { ns: 'appOverview' })} + {' '} + 1 + +

{t(`${prefixCustomize}.way1.name`, { ns: 'appOverview' })}

+
+ 1 +
+
{t(`${prefixCustomize}.way1.step1`, { ns: 'appOverview' })}
+
{t(`${prefixCustomize}.way1.step1Tip`, { ns: 'appOverview' })}
+ +
-
-
- 2 -
-
{t(`${prefixCustomize}.way1.step2`, { ns: 'appOverview' })}
-
{t(`${prefixCustomize}.way1.step2Tip`, { ns: 'appOverview' })}
- +
+ 2 +
+
{t(`${prefixCustomize}.way1.step2`, { ns: 'appOverview' })}
+
{t(`${prefixCustomize}.way1.step2Tip`, { ns: 'appOverview' })}
+ +
-
-
- 3 -
-
{t(`${prefixCustomize}.way1.step3`, { ns: 'appOverview' })}
-
{t(`${prefixCustomize}.way1.step3Tip`, { ns: 'appOverview' })}
-
-                NEXT_PUBLIC_APP_ID=
-                {`'${appId}'`}
-                {' '}
-                
- NEXT_PUBLIC_APP_KEY= - {'\'\''} - {' '} -
- NEXT_PUBLIC_API_URL= - {`'${api_base_url}'`} -
+
+ 3 +
+
{t(`${prefixCustomize}.way1.step3`, { ns: 'appOverview' })}
+
{t(`${prefixCustomize}.way1.step3Tip`, { ns: 'appOverview' })}
+
+                  NEXT_PUBLIC_APP_ID=
+                  {`'${appId}'`}
+                  {' '}
+                  
+ NEXT_PUBLIC_APP_KEY= + {'\'\''} + {' '} +
+ NEXT_PUBLIC_API_URL= + {`'${api_base_url}'`} +
+
-
-
-
- - {t(`${prefixCustomize}.way`, { ns: 'appOverview' })} - {' '} - 2 - -

{t(`${prefixCustomize}.way2.name`, { ns: 'appOverview' })}

- +
+
+ + {t(`${prefixCustomize}.way`, { ns: 'appOverview' })} + {' '} + 2 + +

{t(`${prefixCustomize}.way2.name`, { ns: 'appOverview' })}

+ +
diff --git a/web/app/components/app/overview/embedded/index.tsx b/web/app/components/app/overview/embedded/index.tsx index 112848760b..a0dcc1b535 100644 --- a/web/app/components/app/overview/embedded/index.tsx +++ b/web/app/components/app/overview/embedded/index.tsx @@ -319,12 +319,12 @@ const Embedded = ({ siteInfo, isShow, onClose, appBaseUrl, accessToken, hiddenIn onClose() }} > - - + + {t(`${prefixEmbedded}.title`, { ns: 'appOverview' })} -
+
{isShow && ( = ({ return ( <> !open && onHide()}> - + {/* header */} -
+
{t(`${prefixSettings}.title`, { ns: 'appOverview' })} @@ -263,7 +263,7 @@ const SettingsModal: FC = ({
{/* form body */} -
+
{/* name & icon */}
@@ -474,7 +474,7 @@ const SettingsModal: FC = ({ )}
{/* footer */} -
+
diff --git a/web/app/components/billing/pricing/plans/cloud-plan-item/index.tsx b/web/app/components/billing/pricing/plans/cloud-plan-item/index.tsx index c390385569..9dfc145303 100644 --- a/web/app/components/billing/pricing/plans/cloud-plan-item/index.tsx +++ b/web/app/components/billing/pricing/plans/cloud-plan-item/index.tsx @@ -198,7 +198,7 @@ const CloudPlanItem: FC = ({ > = ({ data, onSave, onCan onCancel() }} > - -
-
+ +
+
{isEditMode ? t('editExternalAPIFormTitle', { ns: 'dataset' }) : t('createExternalAPI', { ns: 'dataset' })} @@ -173,8 +173,8 @@ const AddExternalAPIModal: FC = ({ data, onSave, onCan -
-
+ +
@@ -194,7 +194,7 @@ const AddExternalAPIModal: FC = ({ data, onSave, onCan {t('externalAPIForm.save', { ns: 'dataset' })}
-
diff --git a/web/app/components/header/account-setting/members-page/edit-workspace-modal/index.tsx b/web/app/components/header/account-setting/members-page/edit-workspace-modal/index.tsx index 60fcf8c094..f9d84d414b 100644 --- a/web/app/components/header/account-setting/members-page/edit-workspace-modal/index.tsx +++ b/web/app/components/header/account-setting/members-page/edit-workspace-modal/index.tsx @@ -60,7 +60,7 @@ const EditWorkspaceModal = ({ onCancel }: IEditWorkspaceModalProps) => { onCancel() }} > - + s.licenseLimit) const refreshLicenseLimit = useProviderContextSelector(s => s.refreshLicenseLimit) const [emails, setEmails] = useState([]) - const [isLimited, setIsLimited] = useState(false) - const [isLimitExceeded, setIsLimitExceeded] = useState(false) - const [usedSize, setUsedSize] = useState(licenseLimit.workspace_members.size ?? 0) - useEffect(() => { - const limited = licenseLimit.workspace_members.limit > 0 - const used = emails.length + licenseLimit.workspace_members.size - setIsLimited(limited) - setUsedSize(used) - setIsLimitExceeded(limited && (used > licenseLimit.workspace_members.limit)) - }, [licenseLimit, emails]) + const isLimited = licenseLimit.workspace_members.limit > 0 + const usedSize = emails.length + licenseLimit.workspace_members.size + const isLimitExceeded = isLimited && (usedSize > licenseLimit.workspace_members.limit) const locale = useLocale() const [role, setRole] = useState('normal') @@ -85,7 +78,7 @@ const InviteModal = ({ >