import React, { FC, PropsWithChildren, SVGProps } from "react"; import clsx from "clsx"; import Link from "@docusaurus/Link"; import { CommonLayout } from "@site/src/refine-theme/common-layout"; import { CommonHeader } from "@site/src/refine-theme/common-header"; import { LandingFooter } from "@site/src/refine-theme/landing-footer"; import { CommonCircleChevronRight } from "./common-circle-chevron-right"; import { ShareIcon } from "./icons/share"; import * as Icons from "@site/src/assets/integration-icons"; import ReactMarkdown from "react-markdown"; import remarkGfm from "remark-gfm"; import remarkRehype from "remark-rehype"; import { CommonRunLocalPrompt } from "./common-run-local-prompt"; import { GithubIcon } from "./icons/github"; import { TutorialIcon } from "./icons/tutorial"; type Props = { data: { slug: string; title: string; description: string; images: string[]; runOnYourLocalPath: string; liveDemo: string; github: string; tutorial: string; reactPlatform: string; uiFramework: string; dataProvider: string; authProvider: string; }; }; export const TemplatesDetail: FC = ({ data }) => { return (
lifetime plan (249€)

{data.title}

{data.title}
{data.liveDemo && ( Live demo )} {data.tutorial && ( Purchase License )} {data.github && ( Contribute on GitHub )}
{data.runOnYourLocalPath && (
)}

Description

{data.description}
); }; const ProjectLink: FC> = ({ to, children, }) => { return ( {children}
); }; const Integrations = (props: { className?: string; svgId?: string; reactPlatform: string; uiFramework: string; dataProvider: string; authProvider: string; }) => { const { reactPlatform, uiFramework, dataProvider, authProvider, className, } = props; return (
); }; const IntegrationBadge = (props: { svgId: string; label: string; integration: string; }) => { const Icon = integrationToIconMap?.[props.integration] || (() => null); return (
{props.label}
{props.integration}
); }; const integrationToIconMap = { Ably: (props: SVGProps) => , Airtable: (props: SVGProps) => , "Ant Design": (props: SVGProps) => , Appwrite: (props: SVGProps) => , "Chakra UI": (props: SVGProps) => ( ), Directus: (props: SVGProps) => , Dp: (props: SVGProps) => , Elide: (props: SVGProps) => , ElideGraphql: (props: SVGProps) => ( ), EntRefine: (props: SVGProps) => ( ), Firebase: (props: SVGProps) => , GraphQL: (props: SVGProps) => , Hasura: (props: SVGProps) => , Headless: (props: SVGProps) => , "React Hook Form": (props: SVGProps) => ( ), Hygraph: (props: SVGProps) => , JSONApi: (props: SVGProps) => , Kbar: (props: SVGProps) => , Kinde: (props: SVGProps) => , Mantine: (props: SVGProps) => , Medusa: (props: SVGProps) => , "Material UI": (props: SVGProps) => , Nest: (props: SVGProps) => , "NestJsX CRUD": (props: SVGProps) => ( ), NestQuery: (props: SVGProps) => ( ), "Next.js": (props: SVGProps) => , React: (props: SVGProps) => , Remix: (props: SVGProps) => , "Rest API": (props: SVGProps) => ( ), Sanity: (props: SVGProps) => , "ShadCN UI": (props: SVGProps) => ( ), SQLite: (props: SVGProps) => , Strapi: (props: SVGProps) => , Supabase: (props: SVGProps) => , TailwindCSS: (props: SVGProps) => ( ), UseGenerated: (props: SVGProps) => ( ), SlackIcon: (props: SVGProps) => ( ), Atlassian: (props: SVGProps) => ( ), AuthJs: (props: SVGProps) => , Auth0: (props: SVGProps) => , AwsCognito: (props: SVGProps) => ( ), AzureActiveDirectory: (props: SVGProps) => ( ), Clerk: (props: SVGProps) => , Expo: (props: SVGProps) => , Google: (props: SVGProps) => , Okta: (props: SVGProps) => , MongoDB: (props: SVGProps) => , MsSqlServer: (props: SVGProps) => ( ), MySql: (props: SVGProps) => , PostgreSql: (props: SVGProps) => ( ), Oracle: (props: SVGProps) => , Custom: (props: SVGProps) => , Vite: (props: SVGProps) => , "Nestjs-query": (props: SVGProps) => ( ), }; export type Integration = keyof typeof integrationToIconMap;