diff --git a/.eslintrc.js b/.eslintrc.js
index c0223d80..0d7d099f 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -298,8 +298,13 @@ module.exports = {
// Regex Plugin
"regex/invalid": [
"error",
- // Don't use trailing slashes or cyclic index imports. Don't use numerical strings. Don't use "styled" components. Don't disable rules.
- ['import.*(/|\\.)";', '"\\d+"', "Style[d]", "eslint\\-disable"],
+ [
+ 'import.*(/|\\.)";', // Don't use trailing slashes or cyclic index imports.
+ '"\\d+"', // Don't use numerical strings.
+ "[^\\d]0\\px", // Don't use pixels unit for zero values.
+ "Style[d]", // Don't use "styled" components.
+ "eslint\\-disable", // Don't disable rules.
+ ],
],
// GraphQL Plugin
diff --git a/_pages/profile/[id]/index.js b/_pages/profile/[id]/index.js
index b88f224f..bca05651 100644
--- a/_pages/profile/[id]/index.js
+++ b/_pages/profile/[id]/index.js
@@ -1,6 +1,7 @@
import { Card, Text, useQuery } from "@kleros/components";
import { graphql } from "relay-hooks";
+import SubmissionDetailsAccordion from "./submission-details-accordion";
import SubmissionDetailsCard from "./submission-details-card";
import { submissionStatusEnum } from "data";
@@ -36,6 +37,7 @@ export default function ProfileWithID() {
{props?.submission && (
)}
+
>
);
}
diff --git a/_pages/profile/[id]/submission-details-accordion/appeal-accordion-item.js b/_pages/profile/[id]/submission-details-accordion/appeal-accordion-item.js
new file mode 100644
index 00000000..bf50b6bf
--- /dev/null
+++ b/_pages/profile/[id]/submission-details-accordion/appeal-accordion-item.js
@@ -0,0 +1,17 @@
+import {
+ AccordionItem,
+ AccordionItemHeading,
+ AccordionItemPanel,
+ Text,
+} from "@kleros/components";
+
+export default function AppealAccordionItem() {
+ return (
+
+ Appeal
+
+ Appeal.
+
+
+ );
+}
diff --git a/_pages/profile/[id]/submission-details-accordion/evidence-accordion-item.js b/_pages/profile/[id]/submission-details-accordion/evidence-accordion-item.js
new file mode 100644
index 00000000..593ed12d
--- /dev/null
+++ b/_pages/profile/[id]/submission-details-accordion/evidence-accordion-item.js
@@ -0,0 +1,17 @@
+import {
+ AccordionItem,
+ AccordionItemHeading,
+ AccordionItemPanel,
+ Text,
+} from "@kleros/components";
+
+export default function EvidenceAccordionItem() {
+ return (
+
+ Evidence
+
+ Evidence.
+
+
+ );
+}
diff --git a/_pages/profile/[id]/submission-details-accordion/index.js b/_pages/profile/[id]/submission-details-accordion/index.js
new file mode 100644
index 00000000..fbc3c93c
--- /dev/null
+++ b/_pages/profile/[id]/submission-details-accordion/index.js
@@ -0,0 +1,15 @@
+import { Accordion } from "@kleros/components";
+
+import AppealAccordionItem from "./appeal-accordion-item";
+import EvidenceAccordionItem from "./evidence-accordion-item";
+import VotingHistoryAccordionItem from "./voting-history-accordion-item";
+
+export default function SubmissionDetailsAccordion() {
+ return (
+
+
+
+
+
+ );
+}
diff --git a/_pages/profile/[id]/submission-details-accordion/voting-history-accordion-item.js b/_pages/profile/[id]/submission-details-accordion/voting-history-accordion-item.js
new file mode 100644
index 00000000..3f94f7f5
--- /dev/null
+++ b/_pages/profile/[id]/submission-details-accordion/voting-history-accordion-item.js
@@ -0,0 +1,17 @@
+import {
+ AccordionItem,
+ AccordionItemHeading,
+ AccordionItemPanel,
+ Text,
+} from "@kleros/components";
+
+export default function VotingHistoryAccordionItem() {
+ return (
+
+ Voting History
+
+ Voting History.
+
+
+ );
+}
diff --git a/components/accordion.js b/components/accordion.js
new file mode 100644
index 00000000..52f143f1
--- /dev/null
+++ b/components/accordion.js
@@ -0,0 +1,51 @@
+import {
+ Accordion as _Accordion,
+ AccordionItem as _AccordionItem,
+ AccordionItemButton as _AccordionItemButton,
+ AccordionItemHeading as _AccordionItemHeading,
+ AccordionItemPanel as _AccordionItemPanel,
+} from "react-accessible-accordion";
+import { Box } from "theme-ui";
+
+export default function Accordion({
+ allowMultipleExpanded = true,
+ allowZeroExpanded = true,
+ ...rest
+}) {
+ return (
+ (
+ <_Accordion
+ allowMultipleExpanded={allowMultipleExpanded}
+ allowZeroExpanded={allowZeroExpanded}
+ {...rest}
+ {...props}
+ />
+ )}
+ {...rest}
+ />
+ );
+}
+
+export function AccordionItem(props) {
+ return ;
+}
+
+export function AccordionItemHeading(props) {
+ return (
+ (
+ <_AccordionItemHeading {...props} {...rest}>
+
+ {children}
+
+
+ )}
+ {...props}
+ />
+ );
+}
+
+export function AccordionItemPanel(props) {
+ return ;
+}
diff --git a/components/index.js b/components/index.js
index f568f85c..e79ed831 100644
--- a/components/index.js
+++ b/components/index.js
@@ -1,5 +1,11 @@
export { Box, Flex } from "theme-ui";
+export {
+ default as Accordion,
+ AccordionItem,
+ AccordionItemHeading,
+ AccordionItemPanel,
+} from "./accordion";
export { default as AccountSettingsPopup } from "./account-settings-popup";
export { default as ArchonProvider, useArchon } from "./archon-provider";
export { default as Button } from "./button";
diff --git a/components/theme-provider.js b/components/theme-provider.js
index 62920bb9..db915a45 100644
--- a/components/theme-provider.js
+++ b/components/theme-provider.js
@@ -60,6 +60,27 @@ const theme = merge(merge(base, toTheme(typographyTheme)), {
},
// Components
+ accordion: {
+ item: {
+ marginY: 2,
+ },
+ heading: {
+ backgroundColor: "accent",
+ borderRadius: 3,
+ color: "background",
+ fontWeight: "bold",
+ paddingX: 2,
+ paddingY: 1,
+ },
+ panel: {
+ backgroundColor: "background",
+ bordeRadius: 3,
+ boxShadow: "0 6px 90px rgba(255, 153, 0, 0.25)",
+ fontSize: 1,
+ paddingX: 4,
+ paddingY: 3,
+ },
+ },
buttons: {
primary: {
borderRadius: 300,
diff --git a/package-lock.json b/package-lock.json
index d91bb009..6bb514e7 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -15972,6 +15972,11 @@
"prop-types": "^15.6.2"
}
},
+ "react-accessible-accordion": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/react-accessible-accordion/-/react-accessible-accordion-3.3.3.tgz",
+ "integrity": "sha512-I1Niy21IIyXIzcDuIlTnnN3k8bUux7puq60eyNuwf+lhvftnocn7hLhAz2NycXrZOqBClqi50YBqXlnbOTNrjQ=="
+ },
"react-dom": {
"version": "16.13.1",
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.13.1.tgz",
diff --git a/package.json b/package.json
index 0112253c..fac54cdf 100644
--- a/package.json
+++ b/package.json
@@ -45,6 +45,7 @@
"next": "^9.5.1",
"path-to-regexp": "^6.1.0",
"react": "^16.13.1",
+ "react-accessible-accordion": "^3.3.3",
"react-dom": "^16.13.1",
"react-loading-skeleton": "^2.1.1",
"react-player": "^2.6.1",