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

Function App

App.tsx:309–750  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

307);
308
309export default function App() {
310 const { width } = useWindowDimensions();
311 const [isVisualMode, setIsVisualMode] = useState(getInitialVisualMode);
312 const [visualStory, setVisualStory] =
313 useState<ShowcaseStory>(getInitialStory);
314 const [pageSelection, setPageSelection] = useState<PageSelection>(
315 getInitialPageSelection,
316 );
317 const [themeMode, setThemeMode] =
318 useState<ShowcaseThemeMode>(getInitialThemeMode);
319 const [chartPreset, setChartPreset] =
320 useState<ShowcasePresetId>(getInitialPreset);
321 const [rendererMode, setRendererMode] = useState<PreviewRendererMode>(
322 getInitialRendererMode,
323 );
324 const [isScrubbing, setIsScrubbing] = useState(false);
325 const [touchTracingEnabled, setTouchTracingEnabled] = useState(false);
326 const isDarkApp = themeMode === "dark";
327 const isExportDemoPage = pageSelection.page.id === "export-workflows";
328 const appTheme = useMemo(
329 () =>
330 resolveCartesianChartThemeConfig({
331 mode: themeMode,
332 preset: chartPreset,
333 presets: showcaseCustomPresets,
334 }),
335 [chartPreset, themeMode],
336 );
337
338 const pageStoryGroups = useMemo(
339 () =>
340 getShowcasePageStoryGroups(pageSelection.page).map((group) => ({
341 ...group,
342 stories: group.storyIds
343 .map((storyId) => stories.find((story) => story.id === storyId))
344 .filter((story): story is ShowcaseStory => story !== undefined),
345 })),
346 [pageSelection.page],
347 );
348 const takeoverStories = useMemo(
349 () =>
350 pageStoryGroups
351 .flatMap((group) => group.stories)
352 .filter((story) => story.presentation === "takeover"),
353 [pageStoryGroups],
354 );
355 const takeoverStory = useMemo(
356 () =>
357 takeoverStories.find((story) => story.id === visualStory.id) ??
358 takeoverStories[0],
359 [takeoverStories, visualStory.id],
360 );
361
362 const isWideLayout = width >= 860;
363 const previewWidth = Math.max(
364 280,
365 Math.min(width - 40, isWideLayout ? 940 : 430),
366 );

Callers

nothing calls this directly

Calls 10

getThemeModeFromParamsFunction · 0.90
getPresetFromParamsFunction · 0.90
getStoryFromParamsFunction · 0.85
getPageSelectionFunction · 0.85
applyUrlFunction · 0.85
getStoryRendererFunction · 0.85
selectPageFunction · 0.85

Tested by

no test coverage detected