Skip to content

Commit 69c40a7

Browse files
committed
new hook for subscriberType localization root
1 parent ed59182 commit 69c40a7

File tree

8 files changed

+28
-22
lines changed

8 files changed

+28
-22
lines changed

packages/clerk-js/src/ui/components/PaymentAttempts/PaymentAttemptPage.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import { Header } from '@/ui/elements/Header';
22
import { LineItems } from '@/ui/elements/LineItems';
33

4-
import { usePaymentAttemptsContext, useStatements, useSubscriberTypeContext } from '../../contexts';
4+
import { usePaymentAttemptsContext, useStatements } from '../../contexts';
5+
import { useSubscriberTypeLocalizationRoot } from '../../contexts/components';
56
import {
67
Badge,
78
Box,
@@ -23,8 +24,7 @@ export const PaymentAttemptPage = () => {
2324
const { params, navigate } = useRouter();
2425
const { isLoading } = useStatements();
2526
const { getPaymentAttemptById } = usePaymentAttemptsContext();
26-
const subscriberType = useSubscriberTypeContext();
27-
const localizationRoot = subscriberType === 'user' ? 'userProfile' : 'organizationProfile';
27+
const localizationRoot = useSubscriberTypeLocalizationRoot();
2828

2929
const paymentAttempt = params.paymentAttemptId ? getPaymentAttemptById(params.paymentAttemptId) : null;
3030
const subscriptionItem = paymentAttempt?.subscriptionItem;

packages/clerk-js/src/ui/components/PaymentAttempts/PaymentAttemptsList.tsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import React from 'react';
33

44
import { Pagination } from '@/ui/elements/Pagination';
55

6-
import { usePaymentAttempts, useSubscriberTypeContext } from '../../../ui/contexts';
6+
import { usePaymentAttempts, useSubscriberTypeLocalizationRoot } from '../../../ui/contexts';
77
import type { LocalizationKey } from '../../customizables';
88
import {
99
Badge,
@@ -30,8 +30,7 @@ import { truncateWithEndVisible } from '../../utils/truncateTextWithEndVisible';
3030

3131
export const PaymentAttemptsList = () => {
3232
const { data: paymentAttempts, isLoading } = usePaymentAttempts();
33-
const subscriberType = useSubscriberTypeContext();
34-
const localizationRoot = subscriberType === 'user' ? 'userProfile' : 'organizationProfile';
33+
const localizationRoot = useSubscriberTypeLocalizationRoot();
3534

3635
return (
3736
<DataTable

packages/clerk-js/src/ui/components/PaymentSources/AddPaymentSource.tsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import { FormButtons } from '@/ui/elements/FormButtons';
1515
import { FormContainer } from '@/ui/elements/FormContainer';
1616

1717
import { clerkUnsupportedEnvironmentWarning } from '../../../core/errors';
18-
import { useEnvironment, useSubscriberTypeContext } from '../../contexts';
18+
import { useEnvironment, useSubscriberTypeContext, useSubscriberTypeLocalizationRoot } from '../../contexts';
1919
import { descriptors, Flex, localizationKeys, Spinner, useAppearance, useLocalizations } from '../../customizables';
2020
import type { LocalizationKey } from '../../localization';
2121
import { handleError, normalizeColorString } from '../../utils';
@@ -236,8 +236,7 @@ const AddPaymentSourceForm = ({ children }: PropsWithChildren) => {
236236
const elements = useElements();
237237
const { displayConfig } = useEnvironment();
238238
const { t } = useLocalizations();
239-
const subscriberType = useSubscriberTypeContext();
240-
const localizationRoot = subscriberType === 'user' ? 'userProfile' : 'organizationProfile';
239+
const localizationRoot = useSubscriberTypeLocalizationRoot();
241240

242241
const onSubmit = async (e: React.FormEvent<HTMLFormElement>) => {
243242
e.preventDefault();

packages/clerk-js/src/ui/components/PaymentSources/PaymentSources.tsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import { ThreeDotsMenu } from '@/ui/elements/ThreeDotsMenu';
1010

1111
import { RemoveResourceForm } from '../../common';
1212
import { DevOnly } from '../../common/DevOnly';
13-
import { usePaymentSources, useSubscriberTypeContext } from '../../contexts';
13+
import { usePaymentSources, useSubscriberTypeContext, useSubscriberTypeLocalizationRoot } from '../../contexts';
1414
import { localizationKeys } from '../../customizables';
1515
import { Action } from '../../elements/Action';
1616
import { useActionContext } from '../../elements/Action/ActionRoot';
@@ -23,7 +23,7 @@ const AddScreen = withCardStateProvider(({ onSuccess }: { onSuccess: () => void
2323
const { close } = useActionContext();
2424
const clerk = useClerk();
2525
const subscriberType = useSubscriberTypeContext();
26-
const localizationRoot = subscriberType === 'user' ? 'userProfile' : 'organizationProfile';
26+
const localizationRoot = useSubscriberTypeLocalizationRoot();
2727

2828
const onAddPaymentSourceSuccess = async (context: { stripeSetupIntent?: SetupIntent }) => {
2929
const resource = subscriberType === 'org' ? clerk?.organization : clerk.user;
@@ -65,7 +65,7 @@ const RemoveScreen = ({
6565
const card = useCardState();
6666
const subscriberType = useSubscriberTypeContext();
6767
const { organization } = useOrganization();
68-
const localizationRoot = subscriberType === 'user' ? 'userProfile' : 'organizationProfile';
68+
const localizationRoot = useSubscriberTypeLocalizationRoot();
6969
const ref = useRef(
7070
`${paymentSource.paymentMethod === 'card' ? paymentSource.cardType : paymentSource.paymentMethod} ${paymentSource.paymentMethod === 'card' ? `⋯ ${paymentSource.last4}` : '-'}`,
7171
);
@@ -111,7 +111,7 @@ const RemoveScreen = ({
111111
export const PaymentSources = withCardStateProvider(() => {
112112
const clerk = useClerk();
113113
const subscriberType = useSubscriberTypeContext();
114-
const localizationRoot = subscriberType === 'user' ? 'userProfile' : 'organizationProfile';
114+
const localizationRoot = useSubscriberTypeLocalizationRoot();
115115
const resource = subscriberType === 'org' ? clerk?.organization : clerk.user;
116116

117117
const { data, isLoading, mutate: mutatePaymentSources } = usePaymentSources();
@@ -200,7 +200,7 @@ const PaymentSourceMenu = ({
200200
const card = useCardState();
201201
const { organization } = useOrganization();
202202
const subscriberType = useSubscriberTypeContext();
203-
const localizationRoot = subscriberType === 'user' ? 'userProfile' : 'organizationProfile';
203+
const localizationRoot = useSubscriberTypeLocalizationRoot();
204204

205205
const actions = [
206206
{

packages/clerk-js/src/ui/components/Statements/StatementPage.tsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { Header } from '@/ui/elements/Header';
22

3-
import { useStatements, useStatementsContext, useSubscriberTypeContext } from '../../contexts';
3+
import { useStatements, useStatementsContext, useSubscriberTypeLocalizationRoot } from '../../contexts';
44
import { Box, descriptors, localizationKeys, Spinner, Text, useLocalizations } from '../../customizables';
55
import { Plus, RotateLeftRight } from '../../icons';
66
import { useRouter } from '../../router';
@@ -10,9 +10,8 @@ export const StatementPage = () => {
1010
const { params, navigate } = useRouter();
1111
const { isLoading } = useStatements();
1212
const { getStatementById } = useStatementsContext();
13-
const subscriberType = useSubscriberTypeContext();
13+
const localizationRoot = useSubscriberTypeLocalizationRoot();
1414
const { t } = useLocalizations();
15-
const localizationRoot = subscriberType === 'user' ? 'userProfile' : 'organizationProfile';
1615
const statement = params.statementId ? getStatementById(params.statementId) : null;
1716

1817
if (isLoading) {

packages/clerk-js/src/ui/components/Statements/StatementsList.tsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import React from 'react';
33

44
import { Pagination } from '@/ui/elements/Pagination';
55

6-
import { useStatements, useSubscriberTypeContext } from '../../../ui/contexts';
6+
import { useStatements, useSubscriberTypeLocalizationRoot } from '../../../ui/contexts';
77
import type { LocalizationKey } from '../../customizables';
88
import {
99
Col,
@@ -29,8 +29,7 @@ import { truncateWithEndVisible } from '../../utils/truncateTextWithEndVisible';
2929

3030
export const StatementsList = () => {
3131
const { data: statements, isLoading } = useStatements();
32-
const subscriberType = useSubscriberTypeContext();
33-
const localizationRoot = subscriberType === 'user' ? 'userProfile' : 'organizationProfile';
32+
const localizationRoot = useSubscriberTypeLocalizationRoot();
3433

3534
return (
3635
<DataTable

packages/clerk-js/src/ui/components/Subscriptions/SubscriptionsList.tsx

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,12 @@ import type { CommerceSubscriptionResource } from '@clerk/types';
33
import { ProfileSection } from '@/ui/elements/Section';
44

55
import { useProtect } from '../../common';
6-
import { usePlansContext, useSubscriberTypeContext, useSubscriptions } from '../../contexts';
6+
import {
7+
usePlansContext,
8+
useSubscriberTypeContext,
9+
useSubscriberTypeLocalizationRoot,
10+
useSubscriptions,
11+
} from '../../contexts';
712
import type { LocalizationKey } from '../../customizables';
813
import {
914
Badge,
@@ -34,8 +39,8 @@ export function SubscriptionsList({
3439
arrowButtonEmptyText: LocalizationKey;
3540
}) {
3641
const { handleSelectPlan, captionForSubscription, canManageSubscription } = usePlansContext();
42+
const localizationRoot = useSubscriberTypeLocalizationRoot();
3743
const subscriberType = useSubscriberTypeContext();
38-
const localizationRoot = subscriberType === 'user' ? 'userProfile' : 'organizationProfile';
3944
const { data: subscriptions } = useSubscriptions();
4045
const canManageBilling = useProtect(
4146
has => has({ permission: 'org:sys_billing:manage' }) || subscriberType === 'user',

packages/clerk-js/src/ui/contexts/components/SubscriberType.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,8 @@ const DEFAUlT = 'user';
44
export const SubscriberTypeContext = createContext<'user' | 'org'>(DEFAUlT);
55

66
export const useSubscriberTypeContext = () => useContext(SubscriberTypeContext) || DEFAUlT;
7+
8+
export const useSubscriberTypeLocalizationRoot = () => {
9+
const subscriberType = useSubscriberTypeContext();
10+
return subscriberType === 'user' ? 'userProfile' : 'organizationProfile';
11+
};

0 commit comments

Comments
 (0)