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"; export const Home = ({ modal }: { modal: PageProps }) => { const { toast } = useToastProvider(); 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) => (
); };