@whoof/ui
Version:
UI components and higher-order functions for Whop application layouts
30 lines (29 loc) • 1.11 kB
TypeScript
import type { ReactNode } from 'react';
import type { Sdk } from '@whop/api';
import React from 'react';
type WhopExperience = Awaited<ReturnType<Sdk["experiences"]["getExperience"]>>;
type ViewProps<UserData extends Record<string, any>, AppData extends Record<string, any>> = React.ComponentType<{
experience: WhopExperience;
user: UserData;
} & AppData>;
export declare function AppBuilder<UserData extends Record<string, any>, AppData extends Record<string, any>>({ children, params, whopSdk, appConfig, appView, getUser, fetchData, }: {
children: ReactNode;
params: Promise<{
experienceId: string;
}>;
whopSdk: Sdk;
appView: {
user: ViewProps<UserData, AppData>;
creator: ViewProps<UserData, AppData>;
developer: ViewProps<UserData, AppData>;
};
appConfig: {
appId: string;
};
getUser: (experienceId: string) => Promise<UserData | null>;
fetchData?: (params: {
user: UserData;
experience: WhopExperience;
}) => Promise<AppData> | null;
}): Promise<import("react/jsx-runtime").JSX.Element>;
export {};