From be0f537dc4fe384eef09436833c6407e6482c16d Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Thu, 9 Nov 2023 15:40:16 +0700 Subject: Initial commit --- src/common/libs/authenticate.ts | 22 ++++++++++++++++++++++ src/common/libs/clsxm.ts | 6 ++++++ src/common/libs/toast.tsx | 23 +++++++++++++++++++++++ 3 files changed, 51 insertions(+) create mode 100644 src/common/libs/authenticate.ts create mode 100644 src/common/libs/clsxm.ts create mode 100644 src/common/libs/toast.tsx (limited to 'src/common/libs') diff --git a/src/common/libs/authenticate.ts b/src/common/libs/authenticate.ts new file mode 100644 index 0000000..48d0314 --- /dev/null +++ b/src/common/libs/authenticate.ts @@ -0,0 +1,22 @@ +const authenticate = async ({ + username, + password, +}: { + username: string; + password: string; +}) => { + const res = await fetch("/api/authenticate", { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify({ + username, + password, + }), + }); + + return res; +}; + +export default authenticate; diff --git a/src/common/libs/clsxm.ts b/src/common/libs/clsxm.ts new file mode 100644 index 0000000..0aeffa4 --- /dev/null +++ b/src/common/libs/clsxm.ts @@ -0,0 +1,6 @@ +import clsx, { ClassValue } from "clsx"; +import { twMerge } from "tw-merge"; + +export default function clsxm(...classes: ClassValue[]) { + return twMerge(clsx(...classes)); +} diff --git a/src/common/libs/toast.tsx b/src/common/libs/toast.tsx new file mode 100644 index 0000000..2047a27 --- /dev/null +++ b/src/common/libs/toast.tsx @@ -0,0 +1,23 @@ +import ReactHotToast, { Toast } from "react-hot-toast" +import clsxm from "./clsxm" +import { ReactNode } from "react" +import { XIcon } from "lucide-react" + +type Options = Partial> | undefined + +const toast = (children: ReactNode, options: Options = undefined) => { + return ReactHotToast.custom((t) => ( +
+ {children} +
+ +
+ ), options) +} + +export default toast \ No newline at end of file -- cgit v1.2.3