diff --git a/CHANGELOG.md b/CHANGELOG.md
index 07b9c6d47..6646ff236 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -33,6 +33,10 @@ changes.
- Added `isRegisteredAsSoleVoter` and `wasRegisteredAsSoleVoter` fields to the drep/info response [Issue 212](https://github.com/IntersectMBO/govtool/issues/212)
- Abandoning registration as DRep [Issue 151](https://github.com/IntersectMBO/govtool/issues/151)
- Abandoning GA creation [Issue 359](https://github.com/IntersectMBO/govtool/issues/359)
+- Choose GA type - GA Submiter [Issue 358](https://github.com/IntersectMBO/govtool/issues/358)
+- Create Automated Voting Options component [Issue 216](https://github.com/IntersectMBO/govtool/issues/216)
+- Change step 3 components [Issue 152](https://github.com/intersectMBO/govtool/issues/152)
+- Add possibility to vote on behalf of myself - Sole Voter [Issue 119](https://github.com/IntersectMBO/govtool/issues/119)
- Create DRep registration page about roles [Issue 205](https://github.com/IntersectMBO/govtool/issues/205)
- Create Checkbox component. Improve Field and ControlledField [Issue 177](https://github.com/IntersectMBO/govtool/pull/177)
- Vitest unit tests added for utils functions [Issue 81](https://github.com/IntersectMBO/govtool/issues/81)
diff --git a/govtool/frontend/src/components/molecules/AutomatedVotingCard.tsx b/govtool/frontend/src/components/molecules/AutomatedVotingCard.tsx
new file mode 100644
index 000000000..7deef9a44
--- /dev/null
+++ b/govtool/frontend/src/components/molecules/AutomatedVotingCard.tsx
@@ -0,0 +1,100 @@
+import { Box, Divider } from "@mui/material";
+
+import { AutomatedVotingCardProps } from "./types";
+import { Button, Spacer, Typography } from "@atoms";
+import { useScreenDimension, useTranslation } from "@hooks";
+
+export const AutomatedVotingCard = ({
+ description,
+ onClickDelegate,
+ onClickInfo,
+ title,
+ votingPower,
+}: AutomatedVotingCardProps) => {
+ const { isMobile, screenWidth } = useScreenDimension();
+ const { t } = useTranslation();
+
+ return (
+
+
+ {title}
+
+ {description}
+
+
+
+
+
+ {t("dRepDirectory.votingPower")}
+
+
+ ₳
+ {votingPower}
+
+
+
+
+
+
+
+
+
+ );
+};
diff --git a/govtool/frontend/src/components/molecules/index.ts b/govtool/frontend/src/components/molecules/index.ts
index b87a802df..f412bbe21 100644
--- a/govtool/frontend/src/components/molecules/index.ts
+++ b/govtool/frontend/src/components/molecules/index.ts
@@ -1,4 +1,5 @@
export * from "./ActionCard";
+export * from "./AutomatedVotingCard";
export * from "./Card";
export * from "./CenteredBoxBottomButtons";
export * from "./CenteredBoxPageWrapper";
diff --git a/govtool/frontend/src/components/molecules/types.ts b/govtool/frontend/src/components/molecules/types.ts
index 0ed7df185..e041f1a97 100644
--- a/govtool/frontend/src/components/molecules/types.ts
+++ b/govtool/frontend/src/components/molecules/types.ts
@@ -14,3 +14,11 @@ export type StepProps = {
componentsLayoutStyles?: SxProps;
layoutStyles?: SxProps;
};
+
+export type AutomatedVotingCardProps = {
+ description: string;
+ onClickDelegate: () => void;
+ onClickInfo: () => void;
+ title: string;
+ votingPower: string | number;
+};
diff --git a/govtool/frontend/src/components/organisms/AutomatedVotingOptions.tsx b/govtool/frontend/src/components/organisms/AutomatedVotingOptions.tsx
new file mode 100644
index 000000000..4848be2de
--- /dev/null
+++ b/govtool/frontend/src/components/organisms/AutomatedVotingOptions.tsx
@@ -0,0 +1,70 @@
+import { useState } from "react";
+import { Box } from "@mui/material";
+
+import { Spacer, Typography } from "@atoms";
+import { ICONS } from "@consts";
+import { useTranslation } from "@hooks";
+import { AutomatedVotingCard } from "@molecules";
+
+export const AutomatedVotingOptions = () => {
+ const [isOpen, setIsOpen] = useState(false);
+ const { t } = useTranslation();
+
+ const handleOpen = () => {
+ setIsOpen((prev) => !prev);
+ };
+
+ return (
+
+
+ {t("dRepDirectory.automatedVotingOptions")}
+
+
+ {isOpen ? (
+ <>
+
+ {}}
+ onClickInfo={() => {}}
+ title={t("dRepDirectory.abstainCardTitle")}
+ votingPower={"99,111,111"}
+ />
+
+ {}}
+ onClickInfo={() => {}}
+ title={t("dRepDirectory.noConfidenceTitle")}
+ votingPower={"99,111,111"}
+ />
+ >
+ ) : null}
+
+ );
+};
diff --git a/govtool/frontend/src/components/organisms/index.ts b/govtool/frontend/src/components/organisms/index.ts
index bbded8e90..1085d0c4c 100644
--- a/govtool/frontend/src/components/organisms/index.ts
+++ b/govtool/frontend/src/components/organisms/index.ts
@@ -1,3 +1,4 @@
+export * from "./AutomatedVotingOptions";
export * from "./BgCard";
export * from "./ChooseStakeKeyPanel";
export * from "./ChooseWalletModal";
diff --git a/govtool/frontend/src/i18n/locales/en.ts b/govtool/frontend/src/i18n/locales/en.ts
index f70098f2a..2ba0d37f9 100644
--- a/govtool/frontend/src/i18n/locales/en.ts
+++ b/govtool/frontend/src/i18n/locales/en.ts
@@ -251,6 +251,15 @@ export const en = {
title: "Delegate to myself",
},
},
+ dRepDirectory: {
+ abstainCardDescription: "Select this to vote ABSTAIN to every vote.",
+ abstainCardTitle: "Abstain from Every Vote",
+ automatedVotingOptions: "Automated Voting Options",
+ noConfidenceDescription:
+ "Select this to signal no confidence in the current constitutional committee by voting NO on every proposal and voting YES to no confidence proposals",
+ noConfidenceTitle: "Signal No Confidence on Every Vote",
+ votingPower: "Voting Power",
+ },
errorPage: {
backToDashboard: "Back to dashboard",
backToHomepage: "Back to homepage",
@@ -590,7 +599,8 @@ export const en = {
continue: "Continue",
delegate: "Delegate",
here: "here",
- inProgress: "In Progress",
+ info: "Info",
+ inProgress: "In progress",
learnMore: "Learn more",
loading: "Loading...",
myDRepId: "My DRep ID:",