Refactor billing data loading and schema configuration
This update enhances the capability of the billing system to handle different types of billing modes (subscription-based or one-time payments) and introduces an environment variable for configuring the preferred billing mode. It also refactors the data fetching process in the `loadPersonalAccountBillingPageData` and `loadTeamAccountBillingPageData` to retrieve the proper data depending on the chosen billing mode. Detailed documentation was added in README.md to guide the configuration of the billing schema.
This commit is contained in:
@@ -7,6 +7,8 @@ import { getSupabaseServerComponentClient } from '@kit/supabase/server-component
|
||||
import featureFlagsConfig from '~/config/feature-flags.config';
|
||||
import { Database } from '~/lib/database.types';
|
||||
|
||||
const shouldLoadAccounts = featureFlagsConfig.enableTeamAccounts;
|
||||
|
||||
/**
|
||||
* @name loadUserWorkspace
|
||||
* @description
|
||||
@@ -15,17 +17,16 @@ import { Database } from '~/lib/database.types';
|
||||
*/
|
||||
export const loadUserWorkspace = cache(async () => {
|
||||
const client = getSupabaseServerComponentClient();
|
||||
const loadAccounts = featureFlagsConfig.enableTeamAccounts;
|
||||
|
||||
const accountsPromise = loadAccounts
|
||||
? loadUserAccounts(client)
|
||||
: Promise.resolve([]);
|
||||
const accountsPromise = shouldLoadAccounts
|
||||
? () => loadUserAccounts(client)
|
||||
: () => Promise.resolve([]);
|
||||
|
||||
const workspacePromise = loadUserAccountWorkspace(client);
|
||||
const userPromise = client.auth.getUser();
|
||||
|
||||
const [accounts, workspace, userResult] = await Promise.all([
|
||||
accountsPromise,
|
||||
accountsPromise(),
|
||||
workspacePromise,
|
||||
userPromise,
|
||||
]);
|
||||
|
||||
Reference in New Issue
Block a user