MCPcopy Create free account
hub / github.com/chart-kit/react-native-chart-kit-example / ShowcaseMenu

Function ShowcaseMenu

src/showcase/ShowcaseMenu.tsx:58–434  ·  view source on GitHub ↗
({
  appTheme,
  chartPreset,
  currentPageId,
  currentStoryId,
  onSelectAppDemo,
  onSelectChartPreset,
  onSelectPage,
  onSelectRendererMode,
  onSelectThemeMode,
  onToggleTouchTracing,
  pages,
  presetOptions,
  rendererMode,
  themeMode,
  touchTracingEnabled,
}: {
  appTheme: ShowcaseMenuTheme;
  chartPreset: string;
  currentPageId: string;
  currentStoryId?: string;
  onSelectAppDemo: (page: ShowcasePage, storyId: string) => void;
  onSelectChartPreset: (preset: string) => void;
  onSelectPage: (page: ShowcasePage) => void;
  onSelectRendererMode: (mode: ShowcaseRendererMode) => void;
  onSelectThemeMode: (mode: "dark" | "light") => void;
  onToggleTouchTracing: (enabled: boolean) => void;
  pages: ShowcasePage[];
  presetOptions: Array<ShowcaseMenuOption<string>>;
  rendererMode: ShowcaseRendererMode;
  themeMode: "dark" | "light";
  touchTracingEnabled: boolean;
})

Source from the content-addressed store, hash-verified

56};
57
58export const ShowcaseMenu = ({
59 appTheme,
60 chartPreset,
61 currentPageId,
62 currentStoryId,
63 onSelectAppDemo,
64 onSelectChartPreset,
65 onSelectPage,
66 onSelectRendererMode,
67 onSelectThemeMode,
68 onToggleTouchTracing,
69 pages,
70 presetOptions,
71 rendererMode,
72 themeMode,
73 touchTracingEnabled,
74}: {
75 appTheme: ShowcaseMenuTheme;
76 chartPreset: string;
77 currentPageId: string;
78 currentStoryId?: string;
79 onSelectAppDemo: (page: ShowcasePage, storyId: string) => void;
80 onSelectChartPreset: (preset: string) => void;
81 onSelectPage: (page: ShowcasePage) => void;
82 onSelectRendererMode: (mode: ShowcaseRendererMode) => void;
83 onSelectThemeMode: (mode: "dark" | "light") => void;
84 onToggleTouchTracing: (enabled: boolean) => void;
85 pages: ShowcasePage[];
86 presetOptions: Array<ShowcaseMenuOption<string>>;
87 rendererMode: ShowcaseRendererMode;
88 themeMode: "dark" | "light";
89 touchTracingEnabled: boolean;
90}) => {
91 const [isDrawerOpen, setIsDrawerOpen] = useState(false);
92 const [activeTab, setActiveTab] = useState<MenuTab>(
93 currentPageId === appDemoPageId ? "app-demos" : "chart-types",
94 );
95 const edgePull = useRef(new Animated.Value(0)).current;
96 const drawerProgress = useRef(new Animated.Value(0)).current;
97 const selectedControlTextColor = appTheme.background;
98 const selectedPage = pages.find((page) => page.id === currentPageId);
99 const appDemoRows = useMemo<AppDemoRow[]>(
100 () =>
101 pages
102 .filter((page) => page.id === appDemoPageId)
103 .flatMap((page) => {
104 if (page.storyGroups?.length) {
105 return page.storyGroups.flatMap((group) => {
106 const storyId = group.storyIds[0];
107
108 return storyId
109 ? [
110 {
111 description: group.description ?? page.description,
112 id: `${page.id}:${group.id}`,
113 page,
114 storyId,
115 title: group.title,

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected