Skip to content

Commit a9c1215

Browse files
committed
fix(settings): move region info into readonly row
1 parent 5c2b65b commit a9c1215

File tree

2 files changed

+28
-2
lines changed

2 files changed

+28
-2
lines changed

static/app/views/settings/organizationGeneralSettings/index.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import {useApi} from 'sentry/utils/useApi';
2323
import {useNavigate} from 'sentry/utils/useNavigate';
2424
import {useOrganization} from 'sentry/utils/useOrganization';
2525
import {useProjects} from 'sentry/utils/useProjects';
26+
import {useHasPageFrameFeature} from 'sentry/views/navigation/useHasPageFrameFeature';
2627
import {SettingsPageHeader} from 'sentry/views/settings/components/settingsPageHeader';
2728
import {TextBlock} from 'sentry/views/settings/components/text/textBlock';
2829
import {OrganizationPermissionAlert} from 'sentry/views/settings/organization/organizationPermissionAlert';
@@ -36,6 +37,7 @@ export default function OrganizationGeneralSettings() {
3637
const organization = useOrganization();
3738
const {projects} = useProjects();
3839
const navigate = useNavigate();
40+
const hasPageFrameFeature = useHasPageFrameFeature();
3941

4042
const removeConfirmMessage = (
4143
<Fragment>
@@ -113,7 +115,7 @@ export default function OrganizationGeneralSettings() {
113115
<div>
114116
<SettingsPageHeader
115117
title={t('Organization Settings')}
116-
action={organizationRegionInfo}
118+
action={hasPageFrameFeature ? undefined : organizationRegionInfo}
117119
/>
118120
<OrganizationPermissionAlert />
119121

static/app/views/settings/organizationGeneralSettings/organizationSettingsForm.tsx

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,9 @@ import {
1414
setFieldErrors,
1515
useScrapsForm,
1616
} from '@sentry/scraps/form';
17-
import {Container, Flex} from '@sentry/scraps/layout';
17+
import {Container, Flex, Stack} from '@sentry/scraps/layout';
1818
import {ExternalLink} from '@sentry/scraps/link';
19+
import {Text} from '@sentry/scraps/text';
1920

2021
import {addErrorMessage} from 'sentry/actionCreators/indicator';
2122
import {updateOrganization} from 'sentry/actionCreators/organizations';
@@ -30,10 +31,13 @@ import {ConfigStore} from 'sentry/stores/configStore';
3031
import type {MembershipSettingsProps} from 'sentry/types/hooks';
3132
import type {Organization} from 'sentry/types/organization';
3233
import {fetchMutation, useMutation} from 'sentry/utils/queryClient';
34+
import {getRegionDataFromOrganization, getRegions} from 'sentry/utils/regions';
3335
import {RequestError} from 'sentry/utils/requestError/requestError';
3436
import {slugify} from 'sentry/utils/slugify';
3537
import {useMembers} from 'sentry/utils/useMembers';
3638
import {useOrganization} from 'sentry/utils/useOrganization';
39+
import {useHasPageFrameFeature} from 'sentry/views/navigation/useHasPageFrameFeature';
40+
import {DATA_STORAGE_DOCS_LINK} from 'sentry/views/organizationCreate';
3741

3842
const HookCodecovSettingsLink = HookOrDefault({
3943
hookName: 'component:codecov-integration-settings-link',
@@ -415,10 +419,13 @@ function OrganizationMembershipSettingsBase({
415419
export function OrganizationSettingsForm({initialData, onSave}: Props) {
416420
const organization = useOrganization();
417421
const endpoint = `/organizations/${organization.slug}/`;
422+
const hasPageFrameFeature = useHasPageFrameFeature();
418423

419424
const access = useMemo(() => new Set(organization.access), [organization]);
420425
const hasWriteAccess = access.has('org:write');
421426
const hasGenAiFeatureFlag = organization.features.includes('gen-ai-features');
427+
const regionData =
428+
getRegions().length > 1 ? getRegionDataFromOrganization(organization) : null;
422429

423430
const aiEnabled = hasGenAiFeatureFlag ? (initialData.hideAiFeatures ?? false) : false;
424431

@@ -545,6 +552,23 @@ export function OrganizationSettingsForm({initialData, onSave}: Props) {
545552
)}
546553
</AutoSaveForm>
547554

555+
{/* Data Storage Region — read-only, only shown when multiple regions exist */}
556+
{hasPageFrameFeature && regionData && (
557+
<Flex direction="row" gap="xl" align="center" justify="between" flexGrow={1}>
558+
<Stack width="50%" gap="xs">
559+
<Text>{t('Data Storage Region')}</Text>
560+
<Text size="sm" variant="muted">
561+
{tct("Your organization's data storage location. [link:Learn More]", {
562+
link: <ExternalLink href={DATA_STORAGE_DOCS_LINK} />,
563+
})}
564+
</Text>
565+
</Stack>
566+
<Container flexGrow={1}>
567+
<Text>{`${regionData.flag} ${regionData.displayName}`}</Text>
568+
</Container>
569+
</Flex>
570+
)}
571+
548572
{/* Early Adopter — hidden for self-hosted errors-only */}
549573
{!ConfigStore.get('isSelfHostedErrorsOnly') && (
550574
<AutoSaveForm

0 commit comments

Comments
 (0)