@selfcommunity/react-core
Version:
React Core Components useful for integrating UI Community components (react-ui).
32 lines (30 loc) • 1.47 kB
JavaScript
import { useMemo } from 'react';
import { SCFeatureName } from '@selfcommunity/types';
import { useSCPreferences } from '../components/provider/SCPreferencesProvider';
import * as SCPreferences from '../constants/Preferences';
/**
:::info
This custom hook is used to check if the payments are enabled
:::
:::tip How to use it:
Follow these steps:
```jsx
1. import useSCPaymentsEnabled from '@selfcommunity/react-core';
2. const {isPaymentsEnabled, stripePublicKey, stripeConnectedAccountId} = useSCPaymentsEnabled();
```
:::
*/
export default function useSCPaymentsEnabled() {
// CONTEXT
const { preferences, features } = useSCPreferences();
const isPaymentsEnabled = useMemo(() => preferences &&
features &&
features.includes(SCFeatureName.PAYMENTS) &&
SCPreferences.CONFIGURATIONS_PAYMENTS_ENABLED in preferences &&
preferences[SCPreferences.CONFIGURATIONS_PAYMENTS_ENABLED].value, [preferences]);
const stripePublicKey = useMemo(() => preferences && SCPreferences.STATIC_STRIPE_PUBLIC_KEY in preferences && preferences[SCPreferences.STATIC_STRIPE_PUBLIC_KEY].value, [preferences]);
const stripeConnectedAccountId = useMemo(() => preferences &&
SCPreferences.CONFIGURATIONS_STRIPE_CONNECTED_ACCOUNT_ID in preferences &&
preferences[SCPreferences.CONFIGURATIONS_STRIPE_CONNECTED_ACCOUNT_ID].value, [preferences]);
return { isPaymentsEnabled, stripePublicKey, stripeConnectedAccountId };
}