import React, { useEffect, useState } from "react"; import { Button, DataGrid, SortModel, usePagination, useToastProvider, VariantType, useModals, defaultTokens, } from "@openfun/cunningham-react"; import { PageProps } from "./App"; import { database } from "./Character"; interface PathValueObject { path: string[]; value: any; } /** * Creates an array of objects containing path arrays and leaf values from a nested object * @param obj - The object to traverse * @param currentPath - Current path being built (used internally for recursion) * @returns Array of objects with 'path' (array of keys) and 'value' (leaf value) properties */ export function createPathValueArray( obj: any, currentPath: string[] = [], ): PathValueObject[] { const result: PathValueObject[] = []; Object.entries(obj).forEach(([key, value]) => { const newPath = [...currentPath, key]; // Check if the value is an object and not null/undefined if (value !== null && typeof value === "object" && !Array.isArray(value)) { // Recursively process nested objects result.push(...createPathValueArray(value, newPath)); } else { // This is a leaf value result.push({ path: newPath, value, }); } }); return result; } export const Home = ({ modal }: { modal: PageProps }) => { const { toast } = useToastProvider(); const bg = createPathValueArray(defaultTokens.contextuals.background); const a = bg.map((key) => { return `.bg-${key.path.join("-")} { background-color: var(--c--contextuals--background--${key.path.join("--")}); }`; }); console.log(a) // console.log(createPathValueArray(bg)) const modals = useModals(); const [rowSelection, setRowSelection] = useState({}); const [isLoading, setIsLoading] = useState(true); const pagination = usePagination({ defaultPage: 1 }); const [sortModel, setSortModel] = useState([ { field: "lastName", sort: "desc", }, ]); const [rows, setRows] = useState([]); const [refresh, setRefresh] = useState(1); useEffect(() => { // Sort database. On your side this is supposed to be done on the server. const sortKey = sortModel.length > 0 ? sortModel[0].field : "id"; const sortPolarity = sortModel.length > 0 && sortModel[0].sort === "asc" ? 1 : -1; const sortedDatabase = [...database].sort((a: any, b: any) => { if (a[sortKey] < b[sortKey]) return -sortPolarity; if (a[sortKey] > b[sortKey]) return sortPolarity; return 0; }); setIsLoading(true); // Set the pagination length. pagination.setPagesCount( Math.ceil(sortedDatabase.length / pagination.pageSize) ); // Select the rows to display on the current page. setRows( sortedDatabase.slice( (pagination.page - 1) * pagination.pageSize, pagination.page * pagination.pageSize ) ); setIsLoading(false); }, [pagination.page, sortModel, modal.isOpen, refresh]); return (

{/* eslint-disable-next-line react/no-unescaped-entities */} 🍿Cunningham's Cast

Happy Days is an American television sitcom that aired first-run from January 15, 1974, to September 24, 1984, on ABC-TV
with a total of 255 half-hour episodes spanning over eleven seasons.

Created by Garry Marshall, the series presented an idealized vision of life in the mid-1950s to mid-1960s Midwestern United States.

{ return ( {params.row.sex} ); }, }, { id: "birthDate", headerName: "Birth Date", renderCell: (params) => { return params.row.birthDate.toLocaleDateString(); }, }, { id: "firstAppearanceDate", headerName: "First Appearance", renderCell: (params) => { return params.row.firstAppearanceDate.toLocaleDateString(); }, }, { id: "isGuest", headerName: "Is Guest", renderCell: (params) => { return params.row.isGuest ? ( check_box ) : ( check_box_outline_blank ); }, }, { id: "actions", renderCell: (params) => (
); };