From c2ec158c6e307f00c0160e71e4f619177028ad8b Mon Sep 17 00:00:00 2001 From: 2nthony Date: Wed, 3 Apr 2024 14:43:43 +0800 Subject: [PATCH 1/9] add me delegate card to announcement --- .../announcement.jsx} | 2 +- .../publicAnnouncement/democracy.jsx | 27 +++++++++++++++++++ .../publicAnnouncement/index.jsx | 19 +++++++++++++ .../publicAnnouncement/referenda.jsx | 27 +++++++++++++++++++ 4 files changed, 74 insertions(+), 1 deletion(-) rename packages/next-common/components/delegation/delegate/myDelegationSection/{publicAnnouncement.jsx => publicAnnouncement/announcement.jsx} (96%) create mode 100644 packages/next-common/components/delegation/delegate/myDelegationSection/publicAnnouncement/democracy.jsx create mode 100644 packages/next-common/components/delegation/delegate/myDelegationSection/publicAnnouncement/index.jsx create mode 100644 packages/next-common/components/delegation/delegate/myDelegationSection/publicAnnouncement/referenda.jsx diff --git a/packages/next-common/components/delegation/delegate/myDelegationSection/publicAnnouncement.jsx b/packages/next-common/components/delegation/delegate/myDelegationSection/publicAnnouncement/announcement.jsx similarity index 96% rename from packages/next-common/components/delegation/delegate/myDelegationSection/publicAnnouncement.jsx rename to packages/next-common/components/delegation/delegate/myDelegationSection/publicAnnouncement/announcement.jsx index 6b44e0c272..e195d447b2 100644 --- a/packages/next-common/components/delegation/delegate/myDelegationSection/publicAnnouncement.jsx +++ b/packages/next-common/components/delegation/delegate/myDelegationSection/publicAnnouncement/announcement.jsx @@ -3,7 +3,7 @@ import { SecondaryCard } from "next-common/components/styled/containers/secondar import Tooltip from "next-common/components/tooltip"; import PrimaryButton from "next-common/lib/button/primary"; -export default function PublicAnnouncement() { +export default function Announcement() { return (
diff --git a/packages/next-common/components/delegation/delegate/myDelegationSection/publicAnnouncement/democracy.jsx b/packages/next-common/components/delegation/delegate/myDelegationSection/publicAnnouncement/democracy.jsx new file mode 100644 index 0000000000..a10d878269 --- /dev/null +++ b/packages/next-common/components/delegation/delegate/myDelegationSection/publicAnnouncement/democracy.jsx @@ -0,0 +1,27 @@ +import nextApi from "next-common/services/nextApi"; +import { delegationDemocracyDelegatesAddressApi } from "next-common/services/url"; +import useRealAddress from "next-common/utils/hooks/useRealAddress"; +import { useEffect, useState } from "react"; +import Delegates from "../../democracy/members"; +import Announcement from "./announcement"; + +export default function DemocracyAnnouncement() { + const [data, setData] = useState(); + const realAddress = useRealAddress(); + + useEffect(() => { + nextApi + .fetch(delegationDemocracyDelegatesAddressApi(realAddress)) + .then((resp) => { + if (resp.result) { + setData(resp.result); + } + }); + }, [realAddress]); + + if (data) { + return ; + } + + return ; +} diff --git a/packages/next-common/components/delegation/delegate/myDelegationSection/publicAnnouncement/index.jsx b/packages/next-common/components/delegation/delegate/myDelegationSection/publicAnnouncement/index.jsx new file mode 100644 index 0000000000..9c503b740b --- /dev/null +++ b/packages/next-common/components/delegation/delegate/myDelegationSection/publicAnnouncement/index.jsx @@ -0,0 +1,19 @@ +import { + Democracy, + Referenda, + useModuleTab, +} from "next-common/components/profile/votingHistory/common"; +import ReferendaAnnouncement from "./referenda"; +import DemocracyAnnouncement from "./democracy"; + +export default function PublicAnnouncement() { + const moduleTab = useModuleTab(); + + if (moduleTab === Referenda) { + return ; + } else if (moduleTab === Democracy) { + return ; + } + + return null; +} diff --git a/packages/next-common/components/delegation/delegate/myDelegationSection/publicAnnouncement/referenda.jsx b/packages/next-common/components/delegation/delegate/myDelegationSection/publicAnnouncement/referenda.jsx new file mode 100644 index 0000000000..d1b5e58517 --- /dev/null +++ b/packages/next-common/components/delegation/delegate/myDelegationSection/publicAnnouncement/referenda.jsx @@ -0,0 +1,27 @@ +import { useEffect, useState } from "react"; +import Delegates from "../../referenda/members"; +import Announcement from "./announcement"; +import useRealAddress from "next-common/utils/hooks/useRealAddress"; +import nextApi from "next-common/services/nextApi"; +import { delegationReferendaDelegatesAddressApi } from "next-common/services/url"; + +export default function ReferendaAnnouncement() { + const [data, setData] = useState(); + const realAddress = useRealAddress(); + + useEffect(() => { + nextApi + .fetch(delegationReferendaDelegatesAddressApi(realAddress)) + .then((resp) => { + if (resp.result) { + setData(resp.result); + } + }); + }, [realAddress]); + + if (data) { + return ; + } + + return ; +} From bb6d14fa5c4ee1c8717b6dce87b0569764496a98 Mon Sep 17 00:00:00 2001 From: 2nthony Date: Wed, 3 Apr 2024 14:59:18 +0800 Subject: [PATCH 2/9] fix: referenda card --- .../components/delegation/delegate/referenda/card.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/next-common/components/delegation/delegate/referenda/card.js b/packages/next-common/components/delegation/delegate/referenda/card.js index ce13065460..a9e2bb1702 100644 --- a/packages/next-common/components/delegation/delegate/referenda/card.js +++ b/packages/next-common/components/delegation/delegate/referenda/card.js @@ -11,12 +11,16 @@ import NewDelegateButton from "next-common/components/summary/allDelegation/newD import ReferendaDelegateeDetailPopup from "./detailPopup"; import ReferendaDelegationCardSummary from "./summary"; import { DelegateAvatar } from "./avatar"; +import useRealAddress from "next-common/utils/hooks/useRealAddress"; export default function ReferendaDelegateCard({ delegate = {} }) { const { address, manifesto, shortBio } = delegate; + const realAddress = useRealAddress(); const shortDescription = shortBio || manifesto?.shortDescription; + const isDelegatee = realAddress === address; + const [detailOpen, setDetailOpen] = useState(false); return ( @@ -25,7 +29,7 @@ export default function ReferendaDelegateCard({ delegate = {} }) {
- + {!isDelegatee && } Date: Wed, 3 Apr 2024 15:13:04 +0800 Subject: [PATCH 3/9] Revert "fix: referenda card" This reverts commit bb6d14fa5c4ee1c8717b6dce87b0569764496a98. --- .../components/delegation/delegate/referenda/card.js | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/packages/next-common/components/delegation/delegate/referenda/card.js b/packages/next-common/components/delegation/delegate/referenda/card.js index a9e2bb1702..ce13065460 100644 --- a/packages/next-common/components/delegation/delegate/referenda/card.js +++ b/packages/next-common/components/delegation/delegate/referenda/card.js @@ -11,16 +11,12 @@ import NewDelegateButton from "next-common/components/summary/allDelegation/newD import ReferendaDelegateeDetailPopup from "./detailPopup"; import ReferendaDelegationCardSummary from "./summary"; import { DelegateAvatar } from "./avatar"; -import useRealAddress from "next-common/utils/hooks/useRealAddress"; export default function ReferendaDelegateCard({ delegate = {} }) { const { address, manifesto, shortBio } = delegate; - const realAddress = useRealAddress(); const shortDescription = shortBio || manifesto?.shortDescription; - const isDelegatee = realAddress === address; - const [detailOpen, setDetailOpen] = useState(false); return ( @@ -29,7 +25,7 @@ export default function ReferendaDelegateCard({ delegate = {} }) {
- {!isDelegatee && } + Date: Wed, 3 Apr 2024 15:39:47 +0800 Subject: [PATCH 4/9] referenda show button --- .../components/delegation/delegate/referenda/card.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/next-common/components/delegation/delegate/referenda/card.js b/packages/next-common/components/delegation/delegate/referenda/card.js index ce13065460..650d9d91db 100644 --- a/packages/next-common/components/delegation/delegate/referenda/card.js +++ b/packages/next-common/components/delegation/delegate/referenda/card.js @@ -12,7 +12,10 @@ import ReferendaDelegateeDetailPopup from "./detailPopup"; import ReferendaDelegationCardSummary from "./summary"; import { DelegateAvatar } from "./avatar"; -export default function ReferendaDelegateCard({ delegate = {} }) { +export default function ReferendaDelegateCard({ + delegate = {}, + showDelegateButton = true, +}) { const { address, manifesto, shortBio } = delegate; const shortDescription = shortBio || manifesto?.shortDescription; @@ -25,7 +28,9 @@ export default function ReferendaDelegateCard({ delegate = {} }) {
- + {showDelegateButton && ( + + )} Date: Wed, 3 Apr 2024 15:40:22 +0800 Subject: [PATCH 5/9] democracy show button --- .../components/delegation/delegate/democracy/card.jsx | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/next-common/components/delegation/delegate/democracy/card.jsx b/packages/next-common/components/delegation/delegate/democracy/card.jsx index 25f335c8f7..32bf186d57 100644 --- a/packages/next-common/components/delegation/delegate/democracy/card.jsx +++ b/packages/next-common/components/delegation/delegate/democracy/card.jsx @@ -14,14 +14,15 @@ import { DelegateAvatar } from "../referenda/avatar"; import useRealAddress from "next-common/utils/hooks/useRealAddress"; import useSubDemocracyDelegating from "next-common/utils/hooks/referenda/useSubDemocracyDelegating"; -export default function DemocracyDelegateCard({ delegate = {} }) { +export default function DemocracyDelegateCard({ + delegate = {}, + showDelegateButton = true, +}) { const { address, manifesto } = delegate; const realAddress = useRealAddress(); const { delegating } = useSubDemocracyDelegating(realAddress); - const isDelegatee = realAddress === address; - const [detailOpen, setDetailOpen] = useState(false); return ( @@ -30,7 +31,7 @@ export default function DemocracyDelegateCard({ delegate = {} }) {
- {!isDelegatee && ( + {showDelegateButton && ( Date: Wed, 3 Apr 2024 15:40:58 +0800 Subject: [PATCH 6/9] referenda delegate --- .../publicAnnouncement/referenda.jsx | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/packages/next-common/components/delegation/delegate/myDelegationSection/publicAnnouncement/referenda.jsx b/packages/next-common/components/delegation/delegate/myDelegationSection/publicAnnouncement/referenda.jsx index d1b5e58517..87cca32269 100644 --- a/packages/next-common/components/delegation/delegate/myDelegationSection/publicAnnouncement/referenda.jsx +++ b/packages/next-common/components/delegation/delegate/myDelegationSection/publicAnnouncement/referenda.jsx @@ -1,9 +1,11 @@ import { useEffect, useState } from "react"; -import Delegates from "../../referenda/members"; import Announcement from "./announcement"; import useRealAddress from "next-common/utils/hooks/useRealAddress"; import nextApi from "next-common/services/nextApi"; import { delegationReferendaDelegatesAddressApi } from "next-common/services/url"; +import ReferendaDelegateCard from "../../referenda/card"; +import MemberCardListContainer from "../../common/cardListContainer"; +import { AvatarContextProvider } from "next-common/context/avatar"; export default function ReferendaAnnouncement() { const [data, setData] = useState(); @@ -19,8 +21,16 @@ export default function ReferendaAnnouncement() { }); }, [realAddress]); + const addressAvatarMap = new Map([[data?.address, data?.manifesto?.image]]); + if (data) { - return ; + return ( + + + + + + ); } return ; From 61cceb963363ea21a7676913a40efbd9483f1eb8 Mon Sep 17 00:00:00 2001 From: 2nthony Date: Wed, 3 Apr 2024 15:42:12 +0800 Subject: [PATCH 7/9] democracy delegate --- .../publicAnnouncement/democracy.jsx | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/packages/next-common/components/delegation/delegate/myDelegationSection/publicAnnouncement/democracy.jsx b/packages/next-common/components/delegation/delegate/myDelegationSection/publicAnnouncement/democracy.jsx index a10d878269..2fde673e0a 100644 --- a/packages/next-common/components/delegation/delegate/myDelegationSection/publicAnnouncement/democracy.jsx +++ b/packages/next-common/components/delegation/delegate/myDelegationSection/publicAnnouncement/democracy.jsx @@ -1,8 +1,10 @@ +import { AvatarContextProvider } from "next-common/context/avatar"; import nextApi from "next-common/services/nextApi"; import { delegationDemocracyDelegatesAddressApi } from "next-common/services/url"; import useRealAddress from "next-common/utils/hooks/useRealAddress"; import { useEffect, useState } from "react"; -import Delegates from "../../democracy/members"; +import MemberCardListContainer from "../../common/cardListContainer"; +import DemocracyDelegateCard from "../../democracy/card"; import Announcement from "./announcement"; export default function DemocracyAnnouncement() { @@ -19,8 +21,16 @@ export default function DemocracyAnnouncement() { }); }, [realAddress]); + const addressAvatarMap = new Map([[data?.address, data?.manifesto?.image]]); + if (data) { - return ; + return ( + + + + + + ); } return ; From 39fa9b11a5a8b0561023a54203a679347e414ba0 Mon Sep 17 00:00:00 2001 From: 2nthony Date: Wed, 3 Apr 2024 16:22:19 +0800 Subject: [PATCH 8/9] fix: referenda --- .../publicAnnouncement/referenda.jsx | 32 ++++++++++++------- 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/packages/next-common/components/delegation/delegate/myDelegationSection/publicAnnouncement/referenda.jsx b/packages/next-common/components/delegation/delegate/myDelegationSection/publicAnnouncement/referenda.jsx index 87cca32269..3734156e82 100644 --- a/packages/next-common/components/delegation/delegate/myDelegationSection/publicAnnouncement/referenda.jsx +++ b/packages/next-common/components/delegation/delegate/myDelegationSection/publicAnnouncement/referenda.jsx @@ -1,33 +1,41 @@ -import { useEffect, useState } from "react"; -import Announcement from "./announcement"; -import useRealAddress from "next-common/utils/hooks/useRealAddress"; +import { AvatarContextProvider } from "next-common/context/avatar"; import nextApi from "next-common/services/nextApi"; import { delegationReferendaDelegatesAddressApi } from "next-common/services/url"; -import ReferendaDelegateCard from "../../referenda/card"; +import useRealAddress from "next-common/utils/hooks/useRealAddress"; +import { useAsync } from "react-use"; import MemberCardListContainer from "../../common/cardListContainer"; -import { AvatarContextProvider } from "next-common/context/avatar"; +import ReferendaDelegateCard from "../../referenda/card"; +import Announcement from "./announcement"; export default function ReferendaAnnouncement() { - const [data, setData] = useState(); const realAddress = useRealAddress(); - useEffect(() => { - nextApi + const state = useAsync(async () => { + return await nextApi .fetch(delegationReferendaDelegatesAddressApi(realAddress)) .then((resp) => { if (resp.result) { - setData(resp.result); + return resp.result; } }); }, [realAddress]); - const addressAvatarMap = new Map([[data?.address, data?.manifesto?.image]]); + const addressAvatarMap = new Map([ + [state.value?.address, state.value?.manifesto?.image], + ]); + + if (state.loading) { + return null; + } - if (data) { + if (state.value) { return ( - + ); From 8e51225a180e958dbcf7aeac8598dbad63e57a77 Mon Sep 17 00:00:00 2001 From: 2nthony Date: Wed, 3 Apr 2024 16:22:26 +0800 Subject: [PATCH 9/9] fix: democracy --- .../publicAnnouncement/democracy.jsx | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/packages/next-common/components/delegation/delegate/myDelegationSection/publicAnnouncement/democracy.jsx b/packages/next-common/components/delegation/delegate/myDelegationSection/publicAnnouncement/democracy.jsx index 2fde673e0a..02e098f414 100644 --- a/packages/next-common/components/delegation/delegate/myDelegationSection/publicAnnouncement/democracy.jsx +++ b/packages/next-common/components/delegation/delegate/myDelegationSection/publicAnnouncement/democracy.jsx @@ -2,32 +2,40 @@ import { AvatarContextProvider } from "next-common/context/avatar"; import nextApi from "next-common/services/nextApi"; import { delegationDemocracyDelegatesAddressApi } from "next-common/services/url"; import useRealAddress from "next-common/utils/hooks/useRealAddress"; -import { useEffect, useState } from "react"; +import { useAsync } from "react-use"; import MemberCardListContainer from "../../common/cardListContainer"; import DemocracyDelegateCard from "../../democracy/card"; import Announcement from "./announcement"; export default function DemocracyAnnouncement() { - const [data, setData] = useState(); const realAddress = useRealAddress(); - useEffect(() => { - nextApi + const state = useAsync(async () => { + return await nextApi .fetch(delegationDemocracyDelegatesAddressApi(realAddress)) .then((resp) => { if (resp.result) { - setData(resp.result); + return resp.result; } }); }, [realAddress]); - const addressAvatarMap = new Map([[data?.address, data?.manifesto?.image]]); + const addressAvatarMap = new Map([ + [state.value?.address, state.value?.manifesto?.image], + ]); - if (data) { + if (state.loading) { + return null; + } + + if (state.value) { return ( - + );