From c93cc20f3a362d4f9c93b1a4e7d25741c3d73293 Mon Sep 17 00:00:00 2001
From: Kalle <38327916+Sendouc@users.noreply.github.com>
Date: Sat, 27 Feb 2021 15:06:30 +0200
Subject: [PATCH] can vouch
---
components/plus/PlusHomePage.tsx | 80 ++++++++--
...tionVouchModal.tsx => SuggestionModal.tsx} | 27 +---
components/plus/VouchModal.tsx | 140 ++++++++++++++++++
cypress/integration/plus.spec.ts | 24 +++
hooks/plus.ts | 25 +++-
lib/validators/vouch.ts | 7 +
pages/api/plus/index.ts | 6 +-
pages/api/plus/vouch.ts | 40 +++++
pages/plus/index.tsx | 10 +-
prisma/mocks/plus.ts | 3 +
services/plus.ts | 64 +++++++-
11 files changed, 370 insertions(+), 56 deletions(-)
rename components/plus/{SuggestionVouchModal.tsx => SuggestionModal.tsx} (89%)
create mode 100644 components/plus/VouchModal.tsx
create mode 100644 lib/validators/vouch.ts
create mode 100644 pages/api/plus/vouch.ts
diff --git a/components/plus/PlusHomePage.tsx b/components/plus/PlusHomePage.tsx
index f636e22da..1c5552241 100644
--- a/components/plus/PlusHomePage.tsx
+++ b/components/plus/PlusHomePage.tsx
@@ -1,38 +1,93 @@
import { Box, Center, Divider, Flex, Stack } from "@chakra-ui/layout";
-import { Radio, RadioGroup } from "@chakra-ui/react";
+import {
+ Alert,
+ AlertDescription,
+ AlertTitle,
+ chakra,
+ Radio,
+ RadioGroup,
+} from "@chakra-ui/react";
import { Trans } from "@lingui/macro";
import SubText from "components/common/SubText";
import { useUser } from "hooks/common";
import { usePlus } from "hooks/plus";
+import { getFullUsername } from "lib/strings";
import { Fragment } from "react";
-import { Suggestions } from "services/plus";
+import { PlusStatuses, Suggestions } from "services/plus";
import Suggestion from "./Suggestion";
-import SuggestionVouchModal from "./SuggestionVouchModal";
+import SuggestionModal from "./SuggestionModal";
+import VouchModal from "./VouchModal";
export interface PlusHomePageProps {
suggestions: Suggestions;
+ statuses: PlusStatuses;
}
-const PlusHomePage = ({ suggestions }: PlusHomePageProps) => {
+const PlusHomePage = ({ suggestions, statuses }: PlusHomePageProps) => {
const [user] = useUser();
const {
plusStatusData,
suggestionsData,
ownSuggestion,
- suggestionsLoading,
suggestionCounts,
setSuggestionsFilter,
- } = usePlus(suggestions);
+ vouchedPlusStatusData,
+ } = usePlus({ suggestions, statuses });
return (
<>
- {plusStatusData && plusStatusData.membershipTier && (
-