-
{props.title}
-
{props.description}
-
+
+
+ {props.title}
+
+
+
{props.description}
);
diff --git a/src/components/Components/VoteFormContent/VoteFormAlert.tsx b/src/components/Components/VoteFormContent/VoteFormAlert.tsx
new file mode 100644
index 0000000..b3c3095
--- /dev/null
+++ b/src/components/Components/VoteFormContent/VoteFormAlert.tsx
@@ -0,0 +1,12 @@
+import React from "react";
+import VoteFormAlertAtom from "~/components/Atoms/VoteFormAlertAtom/VoteFormAlertAtom";
+
+const VoteFormAlert = () => {
+ return (
+
+
+
+ );
+};
+
+export default VoteFormAlert;
diff --git a/src/components/Components/VoteFormContent/VoteFormCategory.tsx b/src/components/Components/VoteFormContent/VoteFormCategory.tsx
new file mode 100644
index 0000000..2ae545e
--- /dev/null
+++ b/src/components/Components/VoteFormContent/VoteFormCategory.tsx
@@ -0,0 +1,27 @@
+import React from "react";
+import { Form, Select, type SelectProps } from "antd";
+
+type Props = {
+ label: string;
+ category: SelectProps["options"];
+ name: string;
+};
+
+const VoteFormCategory = (props: Props) => {
+ return (
+
+
+
+ );
+};
+
+export default VoteFormCategory;
diff --git a/src/components/Components/VoteFormContent/VoteFormDate.tsx b/src/components/Components/VoteFormContent/VoteFormDate.tsx
new file mode 100644
index 0000000..c80c32e
--- /dev/null
+++ b/src/components/Components/VoteFormContent/VoteFormDate.tsx
@@ -0,0 +1,21 @@
+import { DatePicker, Form } from "antd";
+import React from "react";
+
+type Props = {
+ label: string;
+ name: string;
+};
+const VoteFormDate = (props: Props) => {
+ return (
+
+
+
+ );
+};
+
+export default VoteFormDate;
diff --git a/src/components/Components/VoteFormContent/VoteFormDescription.tsx b/src/components/Components/VoteFormContent/VoteFormDescription.tsx
new file mode 100644
index 0000000..4b0b8bd
--- /dev/null
+++ b/src/components/Components/VoteFormContent/VoteFormDescription.tsx
@@ -0,0 +1,23 @@
+import { Form } from "antd";
+import TextArea from "antd/es/input/TextArea";
+import React from "react";
+
+type Props = {
+ label: string;
+ name: string;
+ placeholder: string;
+};
+const VoteFormDescription = (props: Props) => {
+ return (
+
+
+
+ );
+};
+
+export default VoteFormDescription;
diff --git a/src/components/Components/VoteFormContent/VoteFormSubmit.tsx b/src/components/Components/VoteFormContent/VoteFormSubmit.tsx
new file mode 100644
index 0000000..69ecb75
--- /dev/null
+++ b/src/components/Components/VoteFormContent/VoteFormSubmit.tsx
@@ -0,0 +1,22 @@
+import { Button, Form } from "antd";
+import React from "react";
+
+type Props = {
+ submit: string;
+};
+const VoteFormSubmit = (props: Props) => {
+ return (
+
+
+
+ );
+};
+
+export default VoteFormSubmit;
diff --git a/src/components/Components/VoteFormContent/VoteFormTitle.tsx b/src/components/Components/VoteFormContent/VoteFormTitle.tsx
new file mode 100644
index 0000000..cc2273d
--- /dev/null
+++ b/src/components/Components/VoteFormContent/VoteFormTitle.tsx
@@ -0,0 +1,20 @@
+import { Form, Input } from "antd";
+import React from "react";
+
+type Props = {
+ label: string;
+ name: string;
+ placeholder: string;
+};
+export const VoteFormTitle = (props: Props) => {
+ return (
+
+
+
+ );
+};
diff --git a/src/components/Components/VoteFormContent/VoteFormUpload.tsx b/src/components/Components/VoteFormContent/VoteFormUpload.tsx
new file mode 100644
index 0000000..0527f10
--- /dev/null
+++ b/src/components/Components/VoteFormContent/VoteFormUpload.tsx
@@ -0,0 +1,54 @@
+import { Button, Form, Upload } from "antd";
+import React from "react";
+import SVGAtom from "~/components/Atoms/SVGAtom/SVGAtom";
+import type { UploadProps } from "antd";
+import type * as svgs from "public/svgs";
+import { message } from "antd";
+
+type Props = {
+ label: string;
+ name: string;
+ icon: keyof typeof svgs;
+};
+const uploadProps: UploadProps = {
+ name: "file",
+ action: "",
+ headers: {
+ authorization: "authorization-text",
+ },
+ onChange(info) {
+ if (info.file.status !== "uploading") {
+ console.log(info.file, info.fileList);
+ }
+ if (info.file.status === "done") {
+ void message.success(`${info.file.name} file uploaded successfully`);
+ } else if (info.file.status === "error") {
+ void message.error(`${info.file.name} file upload failed.`);
+ }
+ },
+};
+
+const VoteFormUpload = (props: Props) => {
+ return (
+
+
+
+
+
+ );
+};
+
+export default VoteFormUpload;
diff --git a/src/components/EmptyContentComponent/EmtpyContentComponent.tsx b/src/components/EmptyContentComponent/EmtpyContentComponent.tsx
new file mode 100644
index 0000000..5e434fc
--- /dev/null
+++ b/src/components/EmptyContentComponent/EmtpyContentComponent.tsx
@@ -0,0 +1,7 @@
+type Props = {
+ // Add props here
+};
+
+export const EmptyContentComponent = (props: Props) => {
+ return
EmptyContentComponent
;
+};
diff --git a/src/components/Modules/Empty/EmptyContentModule.tsx b/src/components/Modules/Empty/EmptyContentModule.tsx
index d3d5bd1..f9ec817 100644
--- a/src/components/Modules/Empty/EmptyContentModule.tsx
+++ b/src/components/Modules/Empty/EmptyContentModule.tsx
@@ -1,5 +1,5 @@
import { EmptyContentAtom } from "~/components/Atoms/EmptyContentAtom/EmptyContentAtom";
-import { EmptyContentComponent } from "~/components/Components/EmptyContentComponent/EmptyContentComponent";
+import { EmptyContentComponent } from "~/components/EmptyContentComponent/EmtpyContentComponent";
type Props = {
moduleProps: string;
@@ -9,7 +9,7 @@ type Props = {
export const EmptyContentModule = (props: Props) => {
return (
-
+
{props.moduleProps}
diff --git a/src/components/Modules/Empty/EmptyFooterModule.tsx b/src/components/Modules/Empty/EmptyFooterModule.tsx
index 9084931..55ef3c2 100644
--- a/src/components/Modules/Empty/EmptyFooterModule.tsx
+++ b/src/components/Modules/Empty/EmptyFooterModule.tsx
@@ -1,9 +1,9 @@
-import { FooterAtom } from "~/components/Atoms/FooterAtom/FooterAtom";
+// import { FooterAtom } from "~/components/Atoms/FooterAtom/FooterAtom";
-type Props = {
- footerProps: React.ComponentProps;
-};
+// type Props = {
+// footerProps: React.ComponentProps;
+// };
-export const EmptyFooterModule = (props: Props) => {
- return ;
-};
+// export const EmptyFooterModule = (props: Props) => {
+// return ;
+// };
diff --git a/src/components/Modules/Home/HomeFooterModule.tsx b/src/components/Modules/Home/HomeFooterModule.tsx
index 9456859..55cbb66 100644
--- a/src/components/Modules/Home/HomeFooterModule.tsx
+++ b/src/components/Modules/Home/HomeFooterModule.tsx
@@ -1,5 +1,4 @@
import { FooterAtom } from "~/components/Atoms/FooterAtom/FooterAtom";
-
type Props = {
title: string;
};
diff --git a/src/components/Modules/Home/HomeWithModalContentModule.tsx b/src/components/Modules/Home/HomeWithModalContentModule.tsx
new file mode 100644
index 0000000..a01f82b
--- /dev/null
+++ b/src/components/Modules/Home/HomeWithModalContentModule.tsx
@@ -0,0 +1,15 @@
+import HomeContentComp from "~/components/Components/HomeContentComp/HomeContentComp";
+import type MessageHero from "~/components/Components/MessagesHero/MessageHero";
+import type { cardList } from "~/interfaces";
+import type { PageWithModalContentCustomModal } from "~/components/Components/PageWithModalContentCustomModal/PageWithModalContentCustomModal";
+
+type Props = {
+ cardProps: cardList[];
+ onOpenSnapshotModal: () => void;
+ modalProps: React.ComponentProps;
+ pageInfoProps: React.ComponentProps;
+};
+
+export const HomeWithModalContentModule = (props: Props) => {
+ return ;
+};
diff --git a/src/components/Modules/Home/HomeWithModalFooterModule.tsx b/src/components/Modules/Home/HomeWithModalFooterModule.tsx
new file mode 100644
index 0000000..201c24d
--- /dev/null
+++ b/src/components/Modules/Home/HomeWithModalFooterModule.tsx
@@ -0,0 +1,10 @@
+import FooterAtom from "~/components/Atoms/HomeFooterAtom/HomeFooterAtom";
+import type { navs } from "~/interfaces";
+
+type Props = {
+ navigation: navs[];
+};
+
+export const HomeWithModalFooterModule = (props: Props) => {
+ return ;
+};
diff --git a/src/components/Modules/Home/HomeWithModalHeaderModule.tsx b/src/components/Modules/Home/HomeWithModalHeaderModule.tsx
new file mode 100644
index 0000000..288351f
--- /dev/null
+++ b/src/components/Modules/Home/HomeWithModalHeaderModule.tsx
@@ -0,0 +1,17 @@
+import { HeaderAtom } from "~/components/Atoms/HeaderAtom/HeaderAtom";
+
+type Props = {
+ title: string;
+ onClickLeftIcon: () => void;
+ onClickRightIcon: () => void;
+};
+
+export const HomeWithModalHeaderModule = (props: Props) => {
+ return (
+
+ );
+};
diff --git a/src/components/Modules/PageWithForm/PageWithFormFormModule.tsx b/src/components/Modules/PageWithForm/PageWithFormFormModule.tsx
index d9607f6..b78bbc2 100644
--- a/src/components/Modules/PageWithForm/PageWithFormFormModule.tsx
+++ b/src/components/Modules/PageWithForm/PageWithFormFormModule.tsx
@@ -116,4 +116,4 @@ export const PageWithFormFormModule = (props: Props) => {
);
-};
+};
\ No newline at end of file
diff --git a/src/components/Modules/PageWithForm/PageWithFormHeaderModule.tsx b/src/components/Modules/PageWithForm/PageWithFormHeaderModule.tsx
index b52c417..0503a54 100644
--- a/src/components/Modules/PageWithForm/PageWithFormHeaderModule.tsx
+++ b/src/components/Modules/PageWithForm/PageWithFormHeaderModule.tsx
@@ -9,4 +9,4 @@ export const PageWithFormHeaderModule = (props: Props) => {
return (
);
-};
+};
\ No newline at end of file
diff --git a/src/components/Modules/PageWithModal/PageWithModalContentModule.tsx b/src/components/Modules/PageWithModal/PageWithModalContentModule.tsx
index a2f333b..4c08805 100644
--- a/src/components/Modules/PageWithModal/PageWithModalContentModule.tsx
+++ b/src/components/Modules/PageWithModal/PageWithModalContentModule.tsx
@@ -8,24 +8,14 @@ type Props = {
export const PageWithModalContentModule = (props: Props) => {
return (
-
+
-
-
-
-
diff --git a/src/components/Modules/PageWithModal/PageWithModalHeaderModule.tsx b/src/components/Modules/PageWithModal/PageWithModalHeaderModule.tsx
index 7d01f23..16a5d10 100644
--- a/src/components/Modules/PageWithModal/PageWithModalHeaderModule.tsx
+++ b/src/components/Modules/PageWithModal/PageWithModalHeaderModule.tsx
@@ -3,10 +3,15 @@ import { HeaderAtom } from "~/components/Atoms/HeaderAtom/HeaderAtom";
type Props = {
title: string;
onClickLeftIcon: () => void;
+ onClickRightIcon: () => void;
};
export const PageWithModalHeaderModule = (props: Props) => {
return (
-
+
);
};
diff --git a/src/components/Modules/VoteForm/VoteFormContentModule.tsx b/src/components/Modules/VoteForm/VoteFormContentModule.tsx
new file mode 100644
index 0000000..3d234b6
--- /dev/null
+++ b/src/components/Modules/VoteForm/VoteFormContentModule.tsx
@@ -0,0 +1,71 @@
+import { Form, message } from "antd";
+import { useState } from "react";
+import moment from "moment";
+import { FormContainer } from "~/components/Atoms/FormContainer/FormContainer";
+import VoteFormCategory from "~/components/Components/VoteFormContent/VoteFormCategory";
+import { VoteFormTitle } from "~/components/Components/VoteFormContent/VoteFormTitle";
+import VoteFormUpload from "~/components/Components/VoteFormContent/VoteFormUpload";
+import VoteFormDescription from "~/components/Components/VoteFormContent/VoteFormDescription";
+import VoteFormDate from "~/components/Components/VoteFormContent/VoteFormDate";
+import VoteFormSubmit from "~/components/Components/VoteFormContent/VoteFormSubmit";
+import VoteFormAlert from "~/components/Components/VoteFormContent/VoteFormAlert";
+
+type Props = {
+ setFormData: (data: any) => void;
+ formCategory: React.ComponentProps
;
+ formTitle: React.ComponentProps;
+ formUplaod: React.ComponentProps;
+ formDescription: React.ComponentProps;
+ formStartDate: React.ComponentProps;
+ formSubmit: React.ComponentProps;
+};
+type finishProps = {
+ category?: string;
+ title?: string;
+ image?: string;
+ description?: string;
+ date?: string;
+};
+const VoteFormContentModule = (props: Props) => {
+ const [form] = Form.useForm();
+ const [loading, setLoading] = useState(false);
+
+ const onFinish = (values: finishProps) => {
+ setLoading(true);
+ console.log("Form Values:", values);
+ // Simulate API call
+ setTimeout(() => {
+ void message.success("Vote created successfully!");
+ setLoading(false);
+ }, 1000);
+ };
+
+ return (
+
+
+
+
+ );
+};
+
+export default VoteFormContentModule;
diff --git a/src/components/Modules/VoteForm/VoteFormHeaderModule.tsx b/src/components/Modules/VoteForm/VoteFormHeaderModule.tsx
new file mode 100644
index 0000000..381004c
--- /dev/null
+++ b/src/components/Modules/VoteForm/VoteFormHeaderModule.tsx
@@ -0,0 +1,11 @@
+import React from "react";
+import FormHeaderAtom from "~/components/Atoms/FormHeaderAtom/FormHeaderAtom";
+
+type Props = {
+ title: string;
+};
+const VoteFormHeaderModule = (props: Props) => {
+ return ;
+};
+
+export default VoteFormHeaderModule;
diff --git a/src/components/Templates/HomeWithModalTemplate/HomeWithModalTemplate.tsx b/src/components/Templates/HomeWithModalTemplate/HomeWithModalTemplate.tsx
new file mode 100644
index 0000000..48b598d
--- /dev/null
+++ b/src/components/Templates/HomeWithModalTemplate/HomeWithModalTemplate.tsx
@@ -0,0 +1,43 @@
+import { Layout } from "antd";
+import { Content, Footer, Header } from "antd/es/layout/layout";
+import { HomeWithModalFooterModule } from "~/components/Modules/Home/HomeWithModalFooterModule";
+import { HomeWithModalHeaderModule } from "~/components/Modules/Home/HomeWithModalHeaderModule";
+import { HomeWithModalContentModule } from "~/components/Modules/Home/HomeWithModalContentModule";
+
+type Props = {
+ homeWithModalHeaderModuleProps: React.ComponentProps<
+ typeof HomeWithModalHeaderModule
+ >;
+ homeWithModalContentModuleProps: React.ComponentProps<
+ typeof HomeWithModalContentModule
+ >;
+ homeWithModalFooterModuleProps: React.ComponentProps<
+ typeof HomeWithModalFooterModule
+ >;
+};
+
+export const HomeWithModalTemplate = (props: Props) => {
+ return (
+
+
+
+
+
+
+
+
+ );
+};
diff --git a/src/components/Templates/PageWithForm/PageWithFormTemplate.tsx b/src/components/Templates/PageWithForm/PageWithFormTemplate.tsx
index edff0ac..422d764 100644
--- a/src/components/Templates/PageWithForm/PageWithFormTemplate.tsx
+++ b/src/components/Templates/PageWithForm/PageWithFormTemplate.tsx
@@ -23,4 +23,4 @@ export const PageWithFormTemplate = (props: Props) => {
);
-};
+};
\ No newline at end of file
diff --git a/src/components/Templates/PageWithModal/PageWithModalTemplate.tsx b/src/components/Templates/PageWithModalTemplate/PageWithModalTemplate.tsx
similarity index 100%
rename from src/components/Templates/PageWithModal/PageWithModalTemplate.tsx
rename to src/components/Templates/PageWithModalTemplate/PageWithModalTemplate.tsx
diff --git a/src/components/Templates/VoteForm/VoteFormTemplate.tsx b/src/components/Templates/VoteForm/VoteFormTemplate.tsx
new file mode 100644
index 0000000..5e46841
--- /dev/null
+++ b/src/components/Templates/VoteForm/VoteFormTemplate.tsx
@@ -0,0 +1,25 @@
+import React from "react";
+import { Layout } from "antd";
+import { Content, Header } from "antd/es/layout/layout";
+import VoteFormContentModule from "~/components/Modules/VoteForm/VoteFormContentModule";
+import VoteFormHeaderModule from "~/components/Modules/VoteForm/VoteFormHeaderModule";
+
+type Props = {
+ formHeaderModuleProps: React.ComponentProps;
+ formContentModuleProps: React.ComponentProps;
+};
+
+const VoteFormTemplate = (props: Props) => {
+ return (
+
+
+
+
+
+
+ );
+};
+
+export default VoteFormTemplate;
diff --git a/src/interfaces.tsx b/src/interfaces.tsx
new file mode 100644
index 0000000..fe346dc
--- /dev/null
+++ b/src/interfaces.tsx
@@ -0,0 +1,14 @@
+import type * as svgs from "public/svgs";
+
+export interface cardList {
+ exchange: string;
+ message: string;
+ user: string;
+ timeStamp: string;
+ src: keyof typeof svgs;
+}
+export interface navs {
+ path: string;
+ label: string;
+ icon: keyof typeof svgs;
+}
diff --git a/src/styles/globals.css b/src/styles/globals.css
index 778c42d..7e10793 100644
--- a/src/styles/globals.css
+++ b/src/styles/globals.css
@@ -7,10 +7,14 @@
-ms-overflow-style: none;
scrollbar-width: none;
}
+.form-scroll {
+ -ms-overflow-style: inherit;
+ scrollbar-width: auto;
+}
-*::-webkit-scrollbar {
+/* *::-webkit-scrollbar {
display: none;
-}
+} */
/* Remove Scroll Bar : End */
/* Set Link Color */