From d717211d26c4a870eab6f6a2298d8057e99ef4ee Mon Sep 17 00:00:00 2001 From: Randy Date: Wed, 12 Jul 2023 22:14:44 +0800 Subject: [PATCH] change version --- components/Footer.tsx | 107 +++---- components/Layout.tsx | 24 +- components/Navbar.tsx | 40 --- package.json | 5 +- pages/_app.tsx | 1 - pages/error.tsx | 2 +- pages/index.tsx | 453 ++++++++++------------------ pnpm-lock.yaml | 214 ++++++++++++- public/images/intro-dashboard-2.png | Bin 0 -> 674222 bytes utils.client.ts | 2 +- 10 files changed, 422 insertions(+), 426 deletions(-) delete mode 100644 components/Navbar.tsx create mode 100644 public/images/intro-dashboard-2.png diff --git a/components/Footer.tsx b/components/Footer.tsx index 3179b8ad..30c3f0c3 100644 --- a/components/Footer.tsx +++ b/components/Footer.tsx @@ -1,4 +1,4 @@ -import { Box, Container, HStack, Image, Link, LinkBox, LinkOverlay, List, ListItem, Text, VStack } from '@chakra-ui/react' +import { Anchor, Box, Group, List, Stack, Text, Image, Center } from '@mantine/core' import * as React from 'react' import { VERSION } from '../utils.client' @@ -6,68 +6,49 @@ export function Footer(props: { maxWidth?: string }) { return ( - <> - - - - - - - Contact - - - Twitter - - - Blog - - - GitHub - - - hi@cusdis.com - + +
+ + + + Contact + + + Twitter + + + Blog + + + GitHub + + + hi@cusdis.com + + + + + Resources + + + Documentation + + + Sponsor + + + Privacy Policy + + - - {/* Made with ❤️ by Randy */} - - - - - - Resources - - - Documentation - - - Sponsor - - - Privacy Policy - - - - - - - - - - - - - - - - - v{VERSION} - - - - - - - + +
+ + + + v{VERSION} + + +
) } diff --git a/components/Layout.tsx b/components/Layout.tsx index b1afac2a..f9595ac9 100644 --- a/components/Layout.tsx +++ b/components/Layout.tsx @@ -1,24 +1,14 @@ import React, { useCallback, useState } from "react" import { useMutation, useQuery } from "react-query" -import { getAllProjects } from "../pages/dashboard" -import { UserSession } from "../service" -import NextLink from 'next/link' import { useRouter } from "next/router" -import { SettingsIcon } from '@chakra-ui/icons' import { AiOutlineLogout, AiOutlineSetting, AiOutlineFileText, AiOutlineAlert, AiOutlinePlus, AiOutlineComment, AiOutlineCode, AiOutlineRight, AiOutlineDown, AiOutlineFile } from 'react-icons/ai' import { signout, signOut } from "next-auth/client" -import { Footer } from "./Footer" -import { createProject } from "../pages/getting-start" import { Anchor, AppShell, Avatar, Badge, Box, Button, Code, Group, Header, Menu, Modal, Navbar, NavLink, ScrollArea, Select, Space, Stack, Switch, Text, TextInput, Title } from "@mantine/core" import Link from "next/link" import type { ProjectServerSideProps } from "../pages/dashboard/project/[projectId]/settings" import { modals } from "@mantine/modals" -import { useClipboard } from '@mantine/hooks'; +import { useClipboard, useDisclosure } from '@mantine/hooks'; import { notifications } from "@mantine/notifications" -import { Project } from "@prisma/client" -import { ProjectService } from "../service/project.service" -import type { resolvedConfig } from "../utils.server" -import { useDisclosure } from '@mantine/hooks'; import { apiClient } from "../utils.client" import { useForm } from "react-hook-form" import { MainLayoutData } from "../service/viewData.service" @@ -99,7 +89,7 @@ export function MainLayout(props: { }) const onClickSaveUserSettings = async () => { - const data = userSettingsForm.getValues() + const data = userSettingsForm.getValues() if (!validateEmail(data.notificationEmail)) { notifications.show({ title: 'Invalid email', @@ -227,7 +217,9 @@ export function MainLayout(props: { - Cusdis + <Anchor href="/"> + Cusdis + </Anchor> @@ -242,7 +234,7 @@ export function MainLayout(props: { + }} size="xs" rightIcon={} variant='subtle'>{props.session.user.name} ) @@ -298,11 +290,11 @@ export function MainLayout(props: { Display name - + {/* Subscription Current plan: {badge} Manage subscription - + */} ) return ( - + - - + {/* + */} - - - - - - Cusdis - - - - - - + + + + ({ + lineHeight: 1.1, + fontSize: 62, + fontWeight: 800, + margin: 0 + })}> + A lightweight, privacy-first, open-source comment system + {/* for your blog */} - - - {/* - - GitHub - */} - - - - - - - - - - Lightweight, privacy-first, open-source comment system - - - Cusdis is an open-source, lightweight (~5kb gzipped), privacy-first alternative to Disqus. It's super easy to use and integrate with your existing website. We don't track you and your users. + + Cusdis is an open-source, lightweight, privacy-first alternative to Disqus. It's super easy to use and integrate with your existing website. We don't track you and your users. + +
+ + + {StartButton} - - {StartButton} - - - Documentation - - - - - - - - - - Lightweight - - The JS SDK embedded to your website is only around 5kb (gzipped). It has built-in i18n, dark-mode. - - + - - - Dashboard - - Moderate all the comments on a dashboard. - - + {/* Pricing */} + + +
- - - Email Notification - + + + + + Features + + + + + + + + Lightweight + + + The JS SDK embedded to your website is only around 5kb (gzipped). It has built-in i18n, dark-mode. + + + + + + + + + + + Email Notification + + You will receive Email notification when a new comment comes in, and approve the new comment without login. - - - - - - Webhook - - You can set a Webhook URL that will be triggered when your websites have new comment. Integrate Cusdis with your favorite tools such as Telegram. - How to use Webhook - - - - - - Approve/Reply without login - +
+ + + + + + + + + + Approve/Reply without login + + In the notification email and webhook, you will get a short-time link to approve/reply the new comment without login to dashboard. All the things get done in your mobile. -
-
- - - - - - - Import from Disqus - - One-click to import your existed data in Disqus to Cusdis. - - - - - - Open source - - Cusdis is an open-source project. You can be sure that you and your users are not tracked. If you'd prefer to own your data, you can also self-host Cusdis easily. - - - - - - - - - -
-
- - - - -
- - - - - - Integrate with frameworks and platforms with ease - - - - - - - - -
- -
-
-
- - -
- -
-
-
- - -
- -
-
-
- - -
- -
-
-
- - -
- -
-
-
- - - -
- -
-
-
-
-
-
- - - - - - - Pricing - - -
- - - $0 - - - Free - - - - - - - 3 Websites - - - Email Notification - - - - - - $1 /month - - - Cusdis is totally free for now. - - - - - - Unlimited Websites - - - Email Notification - - - Webhook - - - Spam filter (coming soon) - - - - - - -
- - - - * We are not making money yet. Users sign up before we launch our paid plans will get three-months paid membership after the plans launch. - - - - * If you like Cusdis. Consider sponsor us to help us be sustainable. - - - - * Special thanks to these sponsors - - - {contributers.map(contributer => { - return ( - - {contributer.name} - - - ) - })} - - - -
- + + + + + + + + + + Webhook + + + You can set a Webhook URL that will be triggered when your websites have new comment. Integrate Cusdis with your favorite tools such as Telegram. + + How to use Webhook + + + + + + + + Integrate with frameworks and platforms with ease + +
- - + ({ + boxShadow: 'inset 0 2px 4px 0 rgb(0 0 0 / 0.05)', + backgroundColor: theme.colors.gray[0], + paddingTop: 80 + })}> + + {integrations.map(item => { + return ( + + + + + + + + ) + })} + + + +
{StartButton} - +