Pārlūkot izejas kodu

Delete documentation/src/pages/templates/index.tsx

Stefan Pejcic 1 gadu atpakaļ
vecāks
revīzija
293151a76c
1 mainītis faili ar 0 papildinājumiem un 612 dzēšanām
  1. 0 612
      documentation/src/pages/templates/index.tsx

+ 0 - 612
documentation/src/pages/templates/index.tsx

@@ -1,612 +0,0 @@
-import Head from "@docusaurus/Head";
-import React, { SVGProps } from "react";
-import { CommonHeader } from "@site/src/refine-theme/common-header";
-import { CommonLayout } from "@site/src/refine-theme/common-layout";
-import { LandingFooter } from "@site/src/refine-theme/landing-footer";
-import clsx from "clsx";
-import { TemplatesHero } from "@site/src/refine-theme/templates-hero";
-import {
-    Antd,
-    Appwrite,
-    Chakra,
-    Graphql,
-    Headless,
-    Mantine,
-    Medusa,
-    Mui,
-    RestWithoutText,
-    Strapi,
-    Supabase,
-} from "@site/src/assets/integration-icons";
-import { TemplatesList } from "@site/src/refine-theme/templates-list";
-import { TemplatesFilters } from "@site/src/refine-theme/templates-filters";
-import { TemplatesFilterButton } from "@site/src/refine-theme/templates-filter-button";
-import { CommonDrawer } from "@site/src/refine-theme/common-drawer";
-
-const Templates: React.FC = () => {
-    const title = "OpenPanel | Next Generation Hosting Panel";
-
-    const [isFilterDrawerOpen, setIsFilterDrawerOpen] = React.useState(false);
-
-    const [filters, setFilters] = React.useState<{
-        uiFramework: string[];
-        backend: string[];
-    }>({
-        uiFramework: [],
-        backend: [],
-    });
-
-    const dataFiltered = React.useMemo(() => {
-        if (!filters.uiFramework.length && !filters.backend.length) {
-            return dataTemplates;
-        }
-
-        return dataTemplates.filter((item) => {
-            return item.integrations.some((integration) => {
-                return (
-                    filters.uiFramework.includes(integration.label) ||
-                    filters.backend.includes(integration.label)
-                );
-            });
-        });
-    }, [filters]);
-
-    const handleFilterChange = (
-        filter: string,
-        field: keyof typeof filters,
-    ) => {
-        setFilters((prev) => {
-            const hasFilter = prev[field].includes(filter);
-            if (hasFilter) {
-                return {
-                    ...prev,
-                    [field]: prev[field].filter((item) => item !== filter),
-                };
-            }
-
-            return {
-                ...prev,
-                [field]: [...prev[field], filter],
-            };
-        });
-    };
-
-    return (
-        <>
-            <Head>
-                <html data-active-page="index" />
-                <title>{title}</title>
-                <meta property="og:title" content={title} />
-                <link
-                    rel="preload"
-                    href="https://refine.new/embed-form"
-                    as="document"
-                />
-            </Head>
-            <CommonLayout description="Build React-based internal tools, admin panels, dashboards & B2B apps with unmatched flexibility.">
-                <div>
-                    <CommonHeader />
-                    <div
-                        className={clsx(
-                            "flex flex-col",
-                            "pb-12 landing-sm:pb-16 landing-md:pb-20",
-                            "px-2 landing-sm:px-0",
-                        )}
-                    >
-                        <div
-                            className={clsx(
-                                "w-full",
-                                "mx-auto",
-                                "px-2 landing-sm:px-8 landing-md:px-0",
-                                "pt-4",
-                                "landing-sm:pt-12",
-                                "landing-md:pt-0",
-                                "w-full max-w-[592px] landing-sm:max-w-[656px] landing-md:max-w-full",
-                            )}
-                        >
-                            <TemplatesHero />
-                            <TemplatesFilterButton
-                                className={clsx(
-                                    "flex landing-md:hidden",
-                                    "mt-6",
-                                )}
-                                onClick={() => {
-                                    setIsFilterDrawerOpen(true);
-                                }}
-                            />
-                        </div>
-                        <div
-                            className={clsx(
-                                "w-full max-w-[592px] landing-sm:max-w-[656px] landing-md:max-w-[896px] landing-lg:max-w-[1200px]",
-                                "flex",
-                                "items-start",
-                                "gap-6",
-                                "mx-auto",
-                                "mt-12",
-                                "relative",
-                                "not-prose",
-                            )}
-                        >
-                            <div
-                                className={clsx(
-                                    "hidden landing-md:flex",
-                                    "flex-col",
-                                    "not-prose",
-                                    "sticky top-24 left-0",
-                                )}
-                            >
-                                <h3
-                                    className={clsx(
-                                        "text-base",
-                                        "font-semibold",
-                                        "dark:text-gray-300 text-gray-900",
-                                        "pl-4",
-                                    )}
-                                >
-                                    Filter Products
-                                </h3>
-                                <TemplatesFilters
-                                    svgId={"sider"}
-                                    onBackendChange={(backend) => {
-                                        handleFilterChange(backend, "backend");
-                                    }}
-                                    onUIFrameworkChange={(uiFramework) => {
-                                        handleFilterChange(
-                                            uiFramework,
-                                            "uiFramework",
-                                        );
-                                    }}
-                                    className={clsx("min-w-[180px]", "mt-10")}
-                                    selected={filters}
-                                    data={dataFilters}
-                                />
-                            </div>
-                            <TemplatesList data={dataFiltered} />
-                        </div>
-                    </div>
-                    <LandingFooter />
-                </div>
-                <CommonDrawer
-                    onClose={() => setIsFilterDrawerOpen(false)}
-                    open={isFilterDrawerOpen}
-                    title="Filter Templates"
-                >
-                    <div className={clsx("flex", "flex-col", "not-prose")}>
-                        <TemplatesFilters
-                            svgId={"drawer"}
-                            onBackendChange={(backend) => {
-                                handleFilterChange(backend, "backend");
-                            }}
-                            onUIFrameworkChange={(uiFramework) => {
-                                handleFilterChange(uiFramework, "uiFramework");
-                            }}
-                            className={clsx("min-w-[180px]")}
-                            selected={filters}
-                            data={dataFilters}
-                        />
-                    </div>
-                </CommonDrawer>
-            </CommonLayout>
-        </>
-    );
-};
-
-type Integration = {
-    uiFrameworks: {
-        label:
-            | "Ant Design"
-            | "Material UI"
-            | "Headless"
-            | "Chakra UI"
-            | "Mantine";
-        icon: (props: SVGProps<SVGSVGElement>) => JSX.Element;
-    };
-    backends: {
-        label:
-            | "Supabase"
-            | "Rest API"
-            | "GraphQL"
-            | "Strapi"
-            | "Appwrite"
-            | "Medusa";
-        icon: (props: SVGProps<SVGSVGElement>) => JSX.Element;
-    };
-};
-
-const dataFilters = {
-    uiFrameworks: [
-        {
-            label: "Ant Design",
-            icon: (props: SVGProps<SVGSVGElement>) => (
-                <Antd width={16} height={16} {...props} />
-            ),
-        },
-        {
-            label: "Material UI",
-            icon: (props: SVGProps<SVGSVGElement>) => (
-                <Mui width={16} height={16} {...props} />
-            ),
-        },
-        {
-            label: "Headless",
-            icon: (props: SVGProps<SVGSVGElement>) => (
-                <Headless width={16} height={16} {...props} />
-            ),
-        },
-        {
-            label: "Chakra UI",
-            icon: (props: SVGProps<SVGSVGElement>) => (
-                <Chakra width={16} height={16} {...props} />
-            ),
-        },
-        {
-            label: "Mantine",
-            icon: (props: SVGProps<SVGSVGElement>) => (
-                <Mantine width={16} height={16} {...props} />
-            ),
-        },
-    ],
-    backends: [
-        {
-            label: "Supabase",
-            icon: (props: SVGProps<SVGSVGElement>) => (
-                <Supabase width={16} height={16} {...props} />
-            ),
-        },
-        {
-            label: "Rest API",
-            icon: (props: SVGProps<SVGSVGElement>) => (
-                <RestWithoutText width={16} height={16} {...props} />
-            ),
-        },
-        {
-            label: "GraphQL",
-            icon: (props: SVGProps<SVGSVGElement>) => (
-                <Graphql width={16} height={16} {...props} />
-            ),
-        },
-        {
-            label: "Strapi",
-            icon: (props: SVGProps<SVGSVGElement>) => (
-                <Strapi width={16} height={16} {...props} />
-            ),
-        },
-        {
-            label: "Appwrite",
-            icon: (props: SVGProps<SVGSVGElement>) => (
-                <Appwrite width={16} height={16} {...props} />
-            ),
-        },
-        {
-            label: "Medusa",
-            icon: (props: SVGProps<SVGSVGElement>) => (
-                <Medusa width={16} height={16} {...props} />
-            ),
-        },
-    ],
-};
-
-const dataTemplates: {
-    title: string;
-    description: string;
-    image: string;
-    to: string;
-    integrations: (Integration["uiFrameworks"] | Integration["backends"])[];
-}[] = [
-    {
-        to: "/templates/crm-application",
-        title: "OpenPanel",
-        description:
-            "The user interface for clients to manage their domains, websites and services.",
-        image: "https://refine.ams3.cdn.digitaloceanspaces.com/templates/refine-crm.jpg",
-        integrations: [
-            {
-                label: "Ant Design",
-                icon: (props: SVGProps<SVGSVGElement>) => (
-                    <Antd width={16} height={16} {...props} />
-                ),
-            },
-            {
-                label: "GraphQL",
-                icon: (props: SVGProps<SVGSVGElement>) => (
-                    <Graphql width={16} height={16} {...props} />
-                ),
-            },
-        ],
-    },
-    {
-        to: "/templates/next-js-tailwind",
-        title: "E-Commerce Application Storefront",
-        description:
-            "A Headless storefront example built with Refine and Tailwind CSS. Features product listings and a simple shopping cart. Supports SSR with NextJS.",
-        image: "https://refine.ams3.cdn.digitaloceanspaces.com/templates/finefoods-storefront.jpg",
-        integrations: [
-            {
-                label: "Headless",
-                icon: (props: SVGProps<SVGSVGElement>) => (
-                    <Headless width={16} height={16} {...props} />
-                ),
-            },
-            {
-                label: "Rest API",
-                icon: (props: SVGProps<SVGSVGElement>) => (
-                    <RestWithoutText width={16} height={16} {...props} />
-                ),
-            },
-        ],
-    },
-    {
-        to: "/templates/react-admin-panel",
-        title: "B2B Admin Panel with Material UI",
-        description:
-            "A comprehensive Admin panel template built using Refine and Material UI demonstrating a food ordering system. It includes features such as authentication, a dashboard, and over 10 CRUD interfaces, ranging from orders to user management.",
-        image: "https://refine.ams3.cdn.digitaloceanspaces.com/templates/finefoods-material-ui.jpg",
-        integrations: [
-            {
-                label: "Material UI",
-                icon: (props: SVGProps<SVGSVGElement>) => (
-                    <Mui width={16} height={16} {...props} />
-                ),
-            },
-            {
-                label: "Rest API",
-                icon: (props: SVGProps<SVGSVGElement>) => (
-                    <RestWithoutText width={16} height={16} {...props} />
-                ),
-            },
-        ],
-    },
-    {
-        to: "/templates/react-admin-panel-ant-design",
-        title: "B2B Internal tool with Ant Design",
-        description:
-            "A comprehensive Admin panel template built using Refine and Ant design demonstrating a food ordering system. It includes features such as authentication, a dashboard, and over 10 CRUD interfaces, ranging from orders to user management.",
-        image: "https://refine.ams3.cdn.digitaloceanspaces.com/templates/finefoods-ant-design.jpg",
-        integrations: [
-            {
-                label: "Ant Design",
-                icon: (props: SVGProps<SVGSVGElement>) => (
-                    <Antd width={16} height={16} {...props} />
-                ),
-            },
-            {
-                label: "Rest API",
-                icon: (props: SVGProps<SVGSVGElement>) => (
-                    <RestWithoutText width={16} height={16} {...props} />
-                ),
-            },
-        ],
-    },
-    {
-        to: "/templates/next-js-ecommerce-store",
-        title: "Swag Store",
-        description:
-            "A complete headless e-commerce template was built on top of Medusa with Refine. Features a fully working solution with product listings, a shopping cart, and checkout. Supports SSR with NextJS.",
-        image: "https://refine.ams3.cdn.digitaloceanspaces.com/templates/swag-store.jpg",
-        integrations: [
-            {
-                label: "Headless",
-                icon: (props: SVGProps<SVGSVGElement>) => (
-                    <Headless width={16} height={16} {...props} />
-                ),
-            },
-            {
-                label: "Medusa",
-                icon: (props: SVGProps<SVGSVGElement>) => (
-                    <Medusa width={16} height={16} {...props} />
-                ),
-            },
-        ],
-    },
-    {
-        to: "/templates/supabase-crud-app",
-        title: "Pixels",
-        description:
-            "It is a funny app built with Refine and Supabase, along with a Realtime feature.",
-        image: "https://refine.ams3.cdn.digitaloceanspaces.com/templates/pixels.jpg",
-        integrations: [
-            {
-                label: "Ant Design",
-                icon: (props: SVGProps<SVGSVGElement>) => (
-                    <Antd width={16} height={16} {...props} />
-                ),
-            },
-            {
-                label: "Supabase",
-                icon: (props: SVGProps<SVGSVGElement>) => (
-                    <Supabase width={16} height={16} {...props} />
-                ),
-            },
-        ],
-    },
-    {
-        to: "/templates/react-pdf-invoice-generator",
-        title: "Invoice Generator - Internal Tool",
-        description:
-            "The Internal Tool template features a PDF Invoice Generator along with CRUD functionalities.",
-        image: "https://refine.ams3.cdn.digitaloceanspaces.com/templates/invoicer.jpg",
-        integrations: [
-            {
-                label: "Ant Design",
-                icon: (props: SVGProps<SVGSVGElement>) => (
-                    <Antd width={16} height={16} {...props} />
-                ),
-            },
-            {
-                label: "Strapi",
-                icon: (props: SVGProps<SVGSVGElement>) => (
-                    <Strapi width={16} height={16} {...props} />
-                ),
-            },
-        ],
-    },
-    {
-        to: "/templates/win-95-style-admin-panel",
-        title: "Win95 Style Admin Panel",
-        description:
-            "With the headless architecture of Refine, you have the flexibility to implement any custom design!",
-        image: "https://refine.ams3.cdn.digitaloceanspaces.com/templates/win95.jpg",
-        integrations: [
-            {
-                label: "Headless",
-                icon: (props: SVGProps<SVGSVGElement>) => (
-                    <Headless width={16} height={16} {...props} />
-                ),
-            },
-            {
-                label: "Supabase",
-                icon: (props: SVGProps<SVGSVGElement>) => (
-                    <Supabase width={16} height={16} {...props} />
-                ),
-            },
-        ],
-    },
-    {
-        to: "/templates/react-crud-app",
-        title: "Realworld Example",
-        description: `"The mother of all demo apps" - Exemplary fullstack Medium.com clone powered by Refine!`,
-        image: "https://refine.ams3.cdn.digitaloceanspaces.com/templates/realworld.jpg",
-        integrations: [
-            {
-                label: "Headless",
-                icon: (props: SVGProps<SVGSVGElement>) => (
-                    <Headless width={16} height={16} {...props} />
-                ),
-            },
-            {
-                label: "Rest API",
-                icon: (props: SVGProps<SVGSVGElement>) => (
-                    <RestWithoutText width={16} height={16} {...props} />
-                ),
-            },
-        ],
-    },
-    {
-        to: "/templates/multitenancy-strapi",
-        title: "Multitenancy App with Strapi",
-        description:
-            "Implementing multitenancy architecture in Refine applications.",
-        image: "https://refine.ams3.cdn.digitaloceanspaces.com/templates/multitenancy-strapi.jpg",
-        integrations: [
-            {
-                label: "Ant Design",
-                icon: (props: SVGProps<SVGSVGElement>) => (
-                    <Antd width={16} height={16} {...props} />
-                ),
-            },
-            {
-                label: "Strapi",
-                icon: (props: SVGProps<SVGSVGElement>) => (
-                    <Strapi width={16} height={16} {...props} />
-                ),
-            },
-        ],
-    },
-    {
-        to: "/templates/multitenancy-appwrite",
-        title: "Multitenancy App with Appwrite",
-        description:
-            "Implementing multitenancy architecture in Refine applications.",
-        image: "https://refine.ams3.cdn.digitaloceanspaces.com/templates/multitenancy-appwrite.jpg",
-        integrations: [
-            {
-                label: "Ant Design",
-                icon: (props: SVGProps<SVGSVGElement>) => (
-                    <Antd width={16} height={16} {...props} />
-                ),
-            },
-            {
-                label: "Appwrite",
-                icon: (props: SVGProps<SVGSVGElement>) => (
-                    <Appwrite width={16} height={16} {...props} />
-                ),
-            },
-        ],
-    },
-    {
-        to: "/templates/ant-design-template",
-        title: "Generic Internal Tool Template with Ant Design",
-        description:
-            "Complete internal tool template built with Ant Design. Features authentication and CRUD screens.",
-        image: "https://refine.ams3.cdn.digitaloceanspaces.com/templates/ant-design-template.jpg",
-        integrations: [
-            {
-                label: "Ant Design",
-                icon: (props: SVGProps<SVGSVGElement>) => (
-                    <Antd width={16} height={16} {...props} />
-                ),
-            },
-            {
-                label: "Rest API",
-                icon: (props: SVGProps<SVGSVGElement>) => (
-                    <RestWithoutText width={16} height={16} {...props} />
-                ),
-            },
-        ],
-    },
-    {
-        to: "/templates/material-ui-template",
-        title: "Generic Internal Tool Template with Material UI",
-        description:
-            "Complete internal tool template built with Material UI. Features authentication and CRUD screens.",
-        image: "https://refine.ams3.cdn.digitaloceanspaces.com/templates/material-ui-template.jpg",
-        integrations: [
-            {
-                label: "Material UI",
-                icon: (props: SVGProps<SVGSVGElement>) => (
-                    <Mui width={16} height={16} {...props} />
-                ),
-            },
-            {
-                label: "Rest API",
-                icon: (props: SVGProps<SVGSVGElement>) => (
-                    <RestWithoutText width={16} height={16} {...props} />
-                ),
-            },
-        ],
-    },
-    {
-        to: "/templates/chakra-ui-template",
-        title: "Generic Internal Tool Template with Chakra UI",
-        description:
-            "Complete internal tool template built with Chakra UI. Features authentication and CRUD screens.",
-        image: "https://refine.ams3.cdn.digitaloceanspaces.com/templates/chakra-ui-template.jpg",
-        integrations: [
-            {
-                label: "Chakra UI",
-                icon: (props: SVGProps<SVGSVGElement>) => (
-                    <Chakra width={16} height={16} {...props} />
-                ),
-            },
-            {
-                label: "Rest API",
-                icon: (props: SVGProps<SVGSVGElement>) => (
-                    <RestWithoutText width={16} height={16} {...props} />
-                ),
-            },
-        ],
-    },
-    {
-        to: "/templates/mantine-template",
-        title: "Generic Internal Tool Template with Mantine",
-        description:
-            "Complete internal tool template built with Mantine. Features authentication and CRUD screens.",
-        image: "https://refine.ams3.cdn.digitaloceanspaces.com/templates/mantine-template.jpg",
-        integrations: [
-            {
-                label: "Mantine",
-                icon: (props: SVGProps<SVGSVGElement>) => (
-                    <Mantine width={16} height={16} {...props} />
-                ),
-            },
-            {
-                label: "Rest API",
-                icon: (props: SVGProps<SVGSVGElement>) => (
-                    <RestWithoutText width={16} height={16} {...props} />
-                ),
-            },
-        ],
-    },
-];
-
-export default Templates;