diff --git a/src/components/Low/Input.tsx b/src/components/Low/Input.tsx index d6f2c692..f37f9a4c 100644 --- a/src/components/Low/Input.tsx +++ b/src/components/Low/Input.tsx @@ -8,6 +8,7 @@ interface Props { label?: string; placeholder?: string; defaultValue?: string | number; + value?: string | number; className?: string; disabled?: boolean; name: string; @@ -20,6 +21,7 @@ export default function Input({ placeholder, name, required = false, + value, defaultValue, className, roundness = "full", @@ -69,6 +71,7 @@ export default function Input({ type={type} name={name} disabled={disabled} + value={value} onChange={(e) => onChange(e.target.value)} min={type === "number" ? 0 : undefined} placeholder={placeholder} diff --git a/src/pages/payment-record.tsx b/src/pages/payment-record.tsx index 271cb45e..a023f3ba 100644 --- a/src/pages/payment-record.tsx +++ b/src/pages/payment-record.tsx @@ -12,13 +12,16 @@ import {createColumnHelper, flexRender, getCoreRowModel, useReactTable} from "@t import {CURRENCIES} from "@/resources/paypal"; import {BsTrash} from "react-icons/bs"; import axios from "axios"; -import {useState} from "react"; +import {useEffect, useState} from "react"; import {AgentUser, CorporateUser, User} from "@/interfaces/user"; import UserCard from "@/components/UserCard"; import Modal from "@/components/Modal"; import clsx from "clsx"; import useUsers from "@/hooks/useUsers"; import Checkbox from "@/components/Low/Checkbox"; +import Button from "@/components/Low/Button"; +import Select from "react-select"; +import Input from "@/components/Low/Input"; export const getServerSideProps = withIronSessionSsr(({req, res}) => { const user = req.session.user; @@ -52,8 +55,126 @@ export const getServerSideProps = withIronSessionSsr(({req, res}) => { const columnHelper = createColumnHelper(); +const PaymentCreator = () => { + const [corporate, setCorporate] = useState(); + const [price, setPrice] = useState(0); + const [currency, setCurrency] = useState("EUR"); + const [commission, setCommission] = useState(0); + const [referralAgent, setReferralAgent] = useState(); + + const {users} = useUsers(); + + useEffect(() => { + if (!corporate) return setReferralAgent(undefined); + if (!corporate.corporateInformation?.referralAgent) return setReferralAgent(undefined); + + const referralAgent = users.find((u) => u.id === corporate.corporateInformation.referralAgent); + setReferralAgent(referralAgent as AgentUser | undefined); + }, [corporate, users]); + + return ( +
+

New Payment

+
+
+ + setPrice(e ? parseInt(e) : 0)} + type="number" + defaultValue={0} + className="col-span-3" + /> + setCommission(e ? parseInt(e) : 0)} type="number" defaultValue={0} /> +
+
+ + c.currency === currency)?.label}`} + onChange={() => null} + type="text" + defaultValue={0} + disabled + /> +
+
+
+ + null} + type="text" + defaultValue={"No country manager"} + disabled + /> +
+ + + ); +}; + export default function PaymentRecord() { const [selectedUser, setSelectedUser] = useState(); + const [isCreatingPayment, setIsCreatingPayment] = useState(false); const {user} = useUser({redirectTo: "/login"}); const {users} = useUsers(); @@ -193,6 +314,16 @@ export default function PaymentRecord() { + setIsCreatingPayment(false)}> + + + +
+

Payment Record

+ +
{table.getHeaderGroups().map((headerGroup) => (