Skip to content

Commit

Permalink
Feature/713 cancel prop (#831)
Browse files Browse the repository at this point in the history
* Publish new lib versions. (#412)

* fix/fix-table-types (#354)

* removed the any types from hub

* renamed Table to DaoTable and DataTable to DaoTable to be more consistent with DaoCard

* removed commented out DaoData type

* one more comment -- thought i got both before

* Fix/355 summon params mixup (#356)

* more ignore

* fixes bad init params order in summon tx

* Feature/tag component (#349)

* Created basic tag component

* Added dynamic color selections for tags

* Bumped versions fixed filer

* Added icon support to tag component

Co-authored-by: Jord <[email protected]>
Co-authored-by: Jonathan Prozzi <[email protected]>

* Feature/delegate play (#357)

* more ignore

* fixes bad init params order in summon tx

* delegate testing and subgraph field updates

* finishes mapping

* update dao-data query and transformer

* adds delegate tag to list view and hooks up delegate filtering

* refactors filter into query helper

* Spencer's Summon tooltip suggestions (#370)

* Spencer's Summon tooltip suggestions

- Summon portion of #365 

* Delimiter references

#368

For now, just referencing spaces. But if tabs, commas, or other delimiters are also supported, those should be references in the tooltips as well.

* Address Jord's comments

Co-authored-by: Sam Kuhlmann <[email protected]>

* Fix/summon poll (#375)

* more ignore

* fixes bad init params order in summon tx

* delegate testing and subgraph field updates

* finishes mapping

* update dao-data query and transformer

* adds delegate tag to list view and hooks up delegate filtering

* adds schema field to tx entity

* updates poll for tx entity made before dao entity

* Feature/alpha baal update (#376)

* new abis

* updates summoner tx logic and contract addresses

* fixes transaction entity creation location;

* fixes some test

* Feature/unit utils (#380)

* create custom d.ts for human-format

* type and convert unit fn from V2

* readableNumber util accepts number strings, throws error if string but number string

* fix 0 to 1 utils, extend MaxDecimals to shorten decimal places

* refine spacer and unit symbol placement

* update new card to handle new params

* update table

* corrections

* alter d.ts file

* potential solutions to ts bug

* implement keating's d.ts fix

* fix comment

* Fix/network switcher (#381)

* better error handling

* fix bug

* remove log

* get react-table TS to stop yelling (#382)

Co-authored-by: Sam Kuhlmann <[email protected]>

* Feature/hub sort (#383)

* wip

* gets query working on dao entity after lots of subgraph updates

* updates front end for sort

* fixes type issue

* fixes build issue

* reviewing v3 monorepo and saw some networks missing (#399)

* Feature/public profile (#384)

* Add some stuff

* Add public profile

* Add ens

* Get build to pass

* Update apps/hub-app/src/pages/PublicProfilePage.tsx

Co-authored-by: Rowdy <[email protected]>

Co-authored-by: Sam Kuhlmann <[email protected]>
Co-authored-by: Rowdy <[email protected]>

* fixing doc display name from <[object Object]> to displayName (#402)

Co-authored-by: Sam Kuhlmann <[email protected]>

* adds search (#401)

* adds search wip

* correctly types the onChange for the input

* cleans up unsed imports

* naming

* Feature/public profile (#384)

* Add some stuff

* Add public profile

* Add ens

* Get build to pass

* Update apps/hub-app/src/pages/PublicProfilePage.tsx

Co-authored-by: Rowdy <[email protected]>

Co-authored-by: Sam Kuhlmann <[email protected]>
Co-authored-by: Rowdy <[email protected]>

* fixing doc display name from <[object Object]> to displayName (#402)

Co-authored-by: Sam Kuhlmann <[email protected]>

* conflicts

* correctly types the onChange for the input

* cleans up unsed imports

* naming

* fix build error

Co-authored-by: Alexander Keating <[email protected]>
Co-authored-by: Rowdy <[email protected]>
Co-authored-by: Brian Rossetti <[email protected]>

* Release/12072022 (#411)

* adds search wip

* correctly types the onChange for the input

* cleans up unsed imports

* naming

* conflicts

* correctly types the onChange for the input

* cleans up unsed imports

* naming

* fix build error

* feature bump

Co-authored-by: Jonathan Prozzi <[email protected]>
Co-authored-by: Rowdy <[email protected]>
Co-authored-by: Jord <[email protected]>
Co-authored-by: Spencer Graham <[email protected]>
Co-authored-by: Brian Rossetti <[email protected]>
Co-authored-by: Alexander Keating <[email protected]>

* Revert "Publish new lib versions. (#412)"

This reverts commit bab7077.

* develop to master (#482)

* UI/layout cleanup (#438)

* run generator

* import connect, theme libs. Add eindow.global. Ensure main.tsx uses React 17 API.

* deletes app test

* updates favicon and title

* remove nx defaults

* rough in layout box, target DH connect nav with class

* remove even more css. World's dubest layout component

* switches to connect class padding for mobile

* extract base layout component to storybook

* hook export chain, change name to outerlayout

* extract formSegment from summon-app; replace in all instances in summon

* extract split-column, replace all instances in summon

* document future changes in comments

* fix exports

* switch core-app to nx default project

* fix spacing

* Fix/split column bug (#444)

- fix bug

* Layouts/subnav (#447)

* clear out extra app.t.tsx

* build sub-nav

* style sub-nav

* test subnav

* extract subNavLink into component

* subnavlink story

* build subnavlink story

* fix broken as prop

* add mobile view, icon button trigger

* add tsc command to core-app

* adds human-format, removes profanity

* Fix summon (#446)

* Fix summon

* clear out extra app.t.tsx

* build sub-nav

* style sub-nav

* test subnav

* extract subNavLink into component

* subnavlink story

* build subnavlink story

* fix broken as prop

* Fix summon

* add mobile view, icon button trigger

* add tsc command to core-app

* adds human-format, removes profanity

* add human-format to dao-data

* move dts file

Co-authored-by: jordan <[email protected]>
Co-authored-by: Jord <[email protected]>

* Haus layout (#451)

* Publish new lib versions. (#412)

* fix/fix-table-types (#354)

* removed the any types from hub

* renamed Table to DaoTable and DataTable to DaoTable to be more consistent with DaoCard

* removed commented out DaoData type

* one more comment -- thought i got both before

* Fix/355 summon params mixup (#356)

* more ignore

* fixes bad init params order in summon tx

* Feature/tag component (#349)

* Created basic tag component

* Added dynamic color selections for tags

* Bumped versions fixed filer

* Added icon support to tag component

Co-authored-by: Jord <[email protected]>
Co-authored-by: Jonathan Prozzi <[email protected]>

* Feature/delegate play (#357)

* more ignore

* fixes bad init params order in summon tx

* delegate testing and subgraph field updates

* finishes mapping

* update dao-data query and transformer

* adds delegate tag to list view and hooks up delegate filtering

* refactors filter into query helper

* Spencer's Summon tooltip suggestions (#370)

* Spencer's Summon tooltip suggestions

- Summon portion of #365 

* Delimiter references

#368

For now, just referencing spaces. But if tabs, commas, or other delimiters are also supported, those should be references in the tooltips as well.

* Address Jord's comments

Co-authored-by: Sam Kuhlmann <[email protected]>

* Fix/summon poll (#375)

* more ignore

* fixes bad init params order in summon tx

* delegate testing and subgraph field updates

* finishes mapping

* update dao-data query and transformer

* adds delegate tag to list view and hooks up delegate filtering

* adds schema field to tx entity

* updates poll for tx entity made before dao entity

* Feature/alpha baal update (#376)

* new abis

* updates summoner tx logic and contract addresses

* fixes transaction entity creation location;

* fixes some test

* Feature/unit utils (#380)

* create custom d.ts for human-format

* type and convert unit fn from V2

* readableNumber util accepts number strings, throws error if string but number string

* fix 0 to 1 utils, extend MaxDecimals to shorten decimal places

* refine spacer and unit symbol placement

* update new card to handle new params

* update table

* corrections

* alter d.ts file

* potential solutions to ts bug

* implement keating's d.ts fix

* fix comment

* Fix/network switcher (#381)

* better error handling

* fix bug

* remove log

* get react-table TS to stop yelling (#382)

Co-authored-by: Sam Kuhlmann <[email protected]>

* Feature/hub sort (#383)

* wip

* gets query working on dao entity after lots of subgraph updates

* updates front end for sort

* fixes type issue

* fixes build issue

* reviewing v3 monorepo and saw some networks missing (#399)

* Feature/public profile (#384)

* Add some stuff

* Add public profile

* Add ens

* Get build to pass

* Update apps/hub-app/src/pages/PublicProfilePage.tsx

Co-authored-by: Rowdy <[email protected]>

Co-authored-by: Sam Kuhlmann <[email protected]>
Co-authored-by: Rowdy <[email protected]>

* fixing doc display name from <[object Object]> to displayName (#402)

Co-authored-by: Sam Kuhlmann <[email protected]>

* adds search (#401)

* adds search wip

* correctly types the onChange for the input

* cleans up unsed imports

* naming

* Feature/public profile (#384)

* Add some stuff

* Add public profile

* Add ens

* Get build to pass

* Update apps/hub-app/src/pages/PublicProfilePage.tsx

Co-authored-by: Rowdy <[email protected]>

Co-authored-by: Sam Kuhlmann <[email protected]>
Co-authored-by: Rowdy <[email protected]>

* fixing doc display name from <[object Object]> to displayName (#402)

Co-authored-by: Sam Kuhlmann <[email protected]>

* conflicts

* correctly types the onChange for the input

* cleans up unsed imports

* naming

* fix build error

Co-authored-by: Alexander Keating <[email protected]>
Co-authored-by: Rowdy <[email protected]>
Co-authored-by: Brian Rossetti <[email protected]>

* Release/12072022 (#411)

* adds search wip

* correctly types the onChange for the input

* cleans up unsed imports

* naming

* conflicts

* correctly types the onChange for the input

* cleans up unsed imports

* naming

* fix build error

* feature bump

Co-authored-by: Jonathan Prozzi <[email protected]>
Co-authored-by: Rowdy <[email protected]>
Co-authored-by: Jord <[email protected]>
Co-authored-by: Spencer Graham <[email protected]>
Co-authored-by: Brian Rossetti <[email protected]>
Co-authored-by: Alexander Keating <[email protected]>

* Revert "Publish new lib versions. (#412)"

This reverts commit bab7077.

* build formLayout Component

* type correction

* build formLayout story

* rough in bicolumn layout

* handle bicolumn mobile switch, finish bicolumn

* fix mainlayout naming

* build story for bi-column layout

* build dh layout one shot?

* yes, one shot

* fix import

* change prop name

Co-authored-by: Jonathan Prozzi <[email protected]>
Co-authored-by: Alexander Keating <[email protected]>
Co-authored-by: Sam Kuhlmann <[email protected]>
Co-authored-by: Rowdy <[email protected]>
Co-authored-by: Spencer Graham <[email protected]>
Co-authored-by: Brian Rossetti <[email protected]>

* bumping packages that were published pre revert last week - causing fialures with package publishing (#460)

* removing period from info content which casues confusing tooltip (#453)

Co-authored-by: Sam Kuhlmann <[email protected]>

* Feature/hub profile menu fix (#480)

* fixes profile link and layout

* dao list style

* adds toast to share link

* Readme tables preferred (#483)

* adjusting breakdown of apps and libs to tables

* adding additoonal app references and libs

* adding timestamp and address fields to many events (#468)

* adding timestamps and address fields to many events

* addressing code review

* shortening naming convention on proposals, top level txHash defined as txHash going forward

* update version

* deploy subgraph and generate query types

Co-authored-by: skuhlmann <[email protected]>

Co-authored-by: Jord <[email protected]>
Co-authored-by: Alexander Keating <[email protected]>
Co-authored-by: jordan <[email protected]>
Co-authored-by: Jonathan Prozzi <[email protected]>
Co-authored-by: Sam Kuhlmann <[email protected]>
Co-authored-by: Rowdy <[email protected]>
Co-authored-by: Spencer Graham <[email protected]>

* Revert "develop to master (#482)" (#492)

This reverts commit 5f7d121.

Co-authored-by: Sam Kuhlmann <[email protected]>

* Develop into master (#577)

* Feature/form builder (#553)

* Publish new lib versions. (#412)

* fix/fix-table-types (#354)

* removed the any types from hub

* renamed Table to DaoTable and DataTable to DaoTable to be more consistent with DaoCard

* removed commented out DaoData type

* one more comment -- thought i got both before

* Fix/355 summon params mixup (#356)

* more ignore

* fixes bad init params order in summon tx

* Feature/tag component (#349)

* Created basic tag component

* Added dynamic color selections for tags

* Bumped versions fixed filer

* Added icon support to tag component

Co-authored-by: Jord <[email protected]>
Co-authored-by: Jonathan Prozzi <[email protected]>

* Feature/delegate play (#357)

* more ignore

* fixes bad init params order in summon tx

* delegate testing and subgraph field updates

* finishes mapping

* update dao-data query and transformer

* adds delegate tag to list view and hooks up delegate filtering

* refactors filter into query helper

* Spencer's Summon tooltip suggestions (#370)

* Spencer's Summon tooltip suggestions

- Summon portion of #365 

* Delimiter references

#368

For now, just referencing spaces. But if tabs, commas, or other delimiters are also supported, those should be references in the tooltips as well.

* Address Jord's comments

Co-authored-by: Sam Kuhlmann <[email protected]>

* Fix/summon poll (#375)

* more ignore

* fixes bad init params order in summon tx

* delegate testing and subgraph field updates

* finishes mapping

* update dao-data query and transformer

* adds delegate tag to list view and hooks up delegate filtering

* adds schema field to tx entity

* updates poll for tx entity made before dao entity

* Feature/alpha baal update (#376)

* new abis

* updates summoner tx logic and contract addresses

* fixes transaction entity creation location;

* fixes some test

* Feature/unit utils (#380)

* create custom d.ts for human-format

* type and convert unit fn from V2

* readableNumber util accepts number strings, throws error if string but number string

* fix 0 to 1 utils, extend MaxDecimals to shorten decimal places

* refine spacer and unit symbol placement

* update new card to handle new params

* update table

* corrections

* alter d.ts file

* potential solutions to ts bug

* implement keating's d.ts fix

* fix comment

* Fix/network switcher (#381)

* better error handling

* fix bug

* remove log

* get react-table TS to stop yelling (#382)

Co-authored-by: Sam Kuhlmann <[email protected]>

* Feature/hub sort (#383)

* wip

* gets query working on dao entity after lots of subgraph updates

* updates front end for sort

* fixes type issue

* fixes build issue

* reviewing v3 monorepo and saw some networks missing (#399)

* Feature/public profile (#384)

* Add some stuff

* Add public profile

* Add ens

* Get build to pass

* Update apps/hub-app/src/pages/PublicProfilePage.tsx

Co-authored-by: Rowdy <[email protected]>

Co-authored-by: Sam Kuhlmann <[email protected]>
Co-authored-by: Rowdy <[email protected]>

* fixing doc display name from <[object Object]> to displayName (#402)

Co-authored-by: Sam Kuhlmann <[email protected]>

* adds search (#401)

* adds search wip

* correctly types the onChange for the input

* cleans up unsed imports

* naming

* Feature/public profile (#384)

* Add some stuff

* Add public profile

* Add ens

* Get build to pass

* Update apps/hub-app/src/pages/PublicProfilePage.tsx

Co-authored-by: Rowdy <[email protected]>

Co-authored-by: Sam Kuhlmann <[email protected]>
Co-authored-by: Rowdy <[email protected]>

* fixing doc display name from <[object Object]> to displayName (#402)

Co-authored-by: Sam Kuhlmann <[email protected]>

* conflicts

* correctly types the onChange for the input

* cleans up unsed imports

* naming

* fix build error

Co-authored-by: Alexander Keating <[email protected]>
Co-authored-by: Rowdy <[email protected]>
Co-authored-by: Brian Rossetti <[email protected]>

* Release/12072022 (#411)

* adds search wip

* correctly types the onChange for the input

* cleans up unsed imports

* naming

* conflicts

* correctly types the onChange for the input

* cleans up unsed imports

* naming

* fix build error

* feature bump

Co-authored-by: Jonathan Prozzi <[email protected]>
Co-authored-by: Rowdy <[email protected]>
Co-authored-by: Jord <[email protected]>
Co-authored-by: Spencer Graham <[email protected]>
Co-authored-by: Brian Rossetti <[email protected]>
Co-authored-by: Alexander Keating <[email protected]>

* Revert "Publish new lib versions. (#412)"

This reverts commit bab7077.

* build formLayout Component

* type correction

* build formLayout story

* rough in bicolumn layout

* handle bicolumn mobile switch, finish bicolumn

* fix mainlayout naming

* build story for bi-column layout

* scaffold formBuilder library

* rough in formBuilder

* restructure types

* refactor component structure

* test render inputs

* add core fields to builder enum

* add row layout to builder

* built logger, fix logger bug

* add disable all functionality

* handle asynchronous callback as props to form builder

* remove some comments

* put submit button in form footer

* fix code based on review

* build validation pipeline

* clean form and field types

* revise types again, simplify rules API

* commit after refactor carnage

* roll back to react-hook-form v6, finally get some traction

* found source of bug, trying new rhf version

* ...and the bug was slain, returned to that cold, miserable shit heap from whence it came.

* reintroduce devtool and logger

* build metadata form, form segment subForm component

* clean, add custom submit btn text

* clean

* build string validations

* derive validation type from function obj

* wrestled types into validation system

* rebuild form builder as context

* build formBuilder hook, use it in the factory

* create sample test

* update form placement

* more post merge corrections

* write validation updaters and add to pipeline, test required updaters, test validation, test pipeline

* try jest testing

* ensure field state updates on formState change

* more cleaning

* reorg files

* build metadata form

* tweak button styles, add defaultValues to formBuilder

* good place to stop

* remove comments

* fix Jest errors

* fix field wrapper stories, update lock

* may have fixed jest errors

Co-authored-by: Jonathan Prozzi <[email protected]>
Co-authored-by: Alexander Keating <[email protected]>
Co-authored-by: Sam Kuhlmann <[email protected]>
Co-authored-by: Rowdy <[email protected]>
Co-authored-by: Spencer Graham <[email protected]>
Co-authored-by: Brian Rossetti <[email protected]>

* Fix build (#563)

* Fix build

* Almost

* More changes

Co-authored-by: Jord <[email protected]>
Co-authored-by: Jonathan Prozzi <[email protected]>
Co-authored-by: Sam Kuhlmann <[email protected]>
Co-authored-by: Rowdy <[email protected]>
Co-authored-by: Spencer Graham <[email protected]>
Co-authored-by: Brian Rossetti <[email protected]>

* Revert "Develop into master (#577)"

This reverts commit b8644d3.

* gets logic for enabling button working

* wires up the tx and tests

* cleanup

* fixes comment on keys

* better button handler

Co-authored-by: Jonathan Prozzi <[email protected]>
Co-authored-by: Alexander Keating <[email protected]>
Co-authored-by: Rowdy <[email protected]>
Co-authored-by: Jord <[email protected]>
Co-authored-by: Spencer Graham <[email protected]>
Co-authored-by: Brian Rossetti <[email protected]>
Co-authored-by: jordan <[email protected]>
  • Loading branch information
8 people authored Sep 13, 2022
1 parent bf0cc9d commit 60b94f9
Show file tree
Hide file tree
Showing 14 changed files with 540 additions and 364 deletions.
112 changes: 112 additions & 0 deletions apps/core-app/src/components/CancelProposal.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
import React, { useMemo } from 'react';
import { useParams } from 'react-router-dom';
import {
handleErrorMessage,
isGovernor,
PROPOSAL_STATUS,
TXLego,
} from '@daohaus/common-utilities';
import { ITransformedProposal } from '@daohaus/dao-data';
import { useHausConnect } from '@daohaus/daohaus-connect-feature';
import { useTxBuilder } from '@daohaus/tx-builder-feature';
import { Spinner, useToast } from '@daohaus/ui';
import { useDao } from '@daohaus/dao-context';

import { ACTION_TX } from '../legos/tx';
import { GatedButton } from './proposalCards/GatedButton';

export const CancelProposal = ({
proposal,
onSuccess,
}: {
proposal: ITransformedProposal;
onSuccess: () => void;
}) => {
const { daochain } = useParams();
const { fireTransaction } = useTxBuilder();
const { chainId, address } = useHausConnect();
const { errorToast, defaultToast, successToast } = useToast();
const [isLoading, setIsLoading] = React.useState(false);
const { dao, refreshAll } = useDao();

const handleCancel = () => {
const { proposalId } = proposal;

if (!proposalId) return;
setIsLoading(true);
fireTransaction({
tx: { ...ACTION_TX.CANCEL, staticArgs: [proposalId] } as TXLego,
lifeCycleFns: {
onTxError: (error) => {
const errMsg = handleErrorMessage({
error,
});
errorToast({ title: 'Cancel Failed', description: errMsg });
setIsLoading(false);
},
onTxSuccess: () => {
defaultToast({
title: 'Cancel Success',
description: 'Please wait for subgraph to sync',
});
},
onPollError: (error) => {
const errMsg = handleErrorMessage({
error,
});
errorToast({ title: 'Poll Error', description: errMsg });
setIsLoading(false);
},
onPollSuccess: () => {
successToast({
title: 'Cancel Success',
description: 'Proposal cancelled',
});
setIsLoading(false);
refreshAll();
onSuccess();
},
},
});
};

const isConnectedToDao =
chainId === daochain
? true
: 'You are not connected to the same network as the DAO';

const addressCanCancel = useMemo(() => {
const isProposer =
proposal.createdBy.toLowerCase() === address?.toLowerCase();

const sponsorBelowThreshold =
Number(proposal.sponsorMembership?.shares) <
Number(dao?.sponsorThreshold);

const isGovernorShaman = dao?.shamen?.some((shaman) => {
return (
shaman.shamanAddress.toLowerCase() === address?.toLowerCase() &&
isGovernor(shaman.permissions)
);
});

return isProposer || sponsorBelowThreshold || isGovernorShaman
? true
: `Proposal can only be cancelled by the proposer, by a governance shaman or if the sponsor's shares have fallen below the sponsor threshold`;
}, [proposal, address, dao]);

if (proposal.status !== PROPOSAL_STATUS.voting) {
return null;
}

return (
<GatedButton
sm
rules={[isConnectedToDao, addressCanCancel]}
onClick={handleCancel}
centerAlign
>
{isLoading ? <Spinner size="2rem" strokeWidth=".2rem" /> : 'Cancel'}
</GatedButton>
);
};
5 changes: 5 additions & 0 deletions apps/core-app/src/legos/tx.ts
Original file line number Diff line number Diff line change
Expand Up @@ -430,4 +430,9 @@ export const ACTION_TX: Record<string, TXLegoBase> = {
contract: CONTRACT.CURRENT_DAO,
method: 'processProposal',
},
CANCEL: {
id: 'CANCEL',
contract: CONTRACT.CURRENT_DAO,
method: 'cancelProposal',
},
};
28 changes: 15 additions & 13 deletions apps/core-app/src/pages/Members.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -194,19 +194,21 @@ export function Members() {
return (
<SingleColumnLayout
title="Members"
actions={[
<StyledButtonLink
href={`/molochv3/${daochain}/${daoid}/new-proposal?formLego=ISSUE`}
>
<Button secondary>Add Member</Button>
</StyledButtonLink>,
connectedMembership && (
<ProfileLink
memberAddress={connectedMembership.memberAddress}
buttonText="My Profile"
/>
),
]}
actions={
<>
<StyledButtonLink
href={`/molochv3/${daochain}/${daoid}/new-proposal?formLego=ISSUE`}
>
<Button secondary>Add Member</Button>
</StyledButtonLink>
{connectedMembership && (
<ProfileLink
memberAddress={connectedMembership.memberAddress}
buttonText="My Profile"
/>
)}
</>
}
>
<MemberContainer>
{dao && <MembersOverview dao={dao} />}
Expand Down
20 changes: 20 additions & 0 deletions apps/core-app/src/pages/ProposalDetails.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import { ProposalDetailsGuts } from '../components/ProposalDetailsGuts';
import { ProposalHistory } from '../components/ProposalHistory';
import { getProposalTypeLabel } from '../utils/general';
import { ProposalActions } from '../components/proposalCards/ProposalActions';
import { CancelProposal } from '../components/CancelProposal';

const OverviewCard = styled(Card)`
width: 64rem;
Expand Down Expand Up @@ -69,6 +70,20 @@ export function ProposalDetails() {
};
}, [daochain, daoid, proposalId, address]);

const refreshProposal = () => {
if (daochain && daoid && proposalId) {
loadProposal({
daoid,
daochain: daochain as keyof Keychain,
proposalId,
setProposal,
setProposalLoading,
shouldUpdate: true,
connectedAddress: address,
});
}
};

if (proposalLoading) {
return (
<SingleColumnLayout>
Expand All @@ -81,6 +96,11 @@ export function ProposalDetails() {
<BiColumnLayout
title={proposal?.title}
subtitle={getProposalTypeLabel(proposal?.proposalType)}
actions={
proposal && (
<CancelProposal proposal={proposal} onSuccess={refreshProposal} />
)
}
left={
<OverviewCard>
{proposal && <ProposalDetailsGuts proposal={proposal} />}
Expand Down
4 changes: 4 additions & 0 deletions apps/v3-subgraph/schema.graphql
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,8 @@ type Proposal @entity {
createdAt: BigInt!
"address that submitted the proposal"
createdBy: Bytes!
"member entity of proposer if applicable"
proposerMembership: Member
"related DAO entity"
dao: Dao!
"id of the proposal"
Expand Down Expand Up @@ -109,6 +111,8 @@ type Proposal @entity {
sponsored: Boolean!
"address that sponsored the proposal"
sponsor: Bytes
"member entity of the sponsor"
sponsorMembership: Member
"transaction hash of the proposal sponsor"
sponsorTxHash: Bytes
"unix timestamp of when the proposal was sponsored"
Expand Down
11 changes: 11 additions & 0 deletions apps/v3-subgraph/src/baal-mapping.ts
Original file line number Diff line number Diff line change
Expand Up @@ -154,9 +154,14 @@ export function handleSubmitProposal(event: SubmitProposal): void {
.concat('-proposal-')
.concat(event.params.proposal.toString());

let proposerId = dao.id
.concat('-member-')
.concat(event.transaction.from.toHexString());

let proposal = new Proposal(proposalId);
proposal.createdAt = event.block.timestamp;
proposal.createdBy = event.transaction.from;
proposal.proposerMembership = proposerId;
proposal.txHash = event.transaction.hash;
proposal.dao = event.address.toHexString();
proposal.proposalId = event.params.proposal;
Expand Down Expand Up @@ -185,6 +190,7 @@ export function handleSubmitProposal(event: SubmitProposal): void {
? event.block.timestamp
: null;
proposal.sponsor = event.params.selfSponsor ? event.transaction.from : null;
proposal.sponsorMembership = event.params.selfSponsor ? proposerId : null;
proposal.prevProposalId = event.params.selfSponsor
? dao.latestSponsoredProposalId
: constants.BIGINT_ZERO;
Expand Down Expand Up @@ -263,7 +269,12 @@ export function handleSponsorProposal(event: SponsorProposal): void {
return;
}

let sponsorId = dao.id
.concat('-member-')
.concat(event.params.member.toHexString());

proposal.sponsor = event.params.member;
proposal.sponsorMembership = sponsorId;
proposal.sponsored = true;
proposal.votingStarts = event.block.timestamp;
proposal.votingEnds = event.block.timestamp.plus(dao.votingPeriod);
Expand Down
1 change: 1 addition & 0 deletions libs/common-utilities/src/utils/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ export * from './typeguards';
export * from './encoding';
export * from './units';
export * from './object';
export * from './shamanPermission';
export * from './time';
export * from './validation';
export * from './error';
26 changes: 26 additions & 0 deletions libs/common-utilities/src/utils/shamanPermission.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
export const isManager = (permissionLevel: string | number): boolean => {
return (
Number(permissionLevel) === 2 ||
Number(permissionLevel) === 3 ||
Number(permissionLevel) === 6 ||
Number(permissionLevel) === 7
);
};

export const isGovernor = (permissionLevel: string | number): boolean => {
return (
Number(permissionLevel) === 4 ||
Number(permissionLevel) === 5 ||
Number(permissionLevel) === 6 ||
Number(permissionLevel) === 7
);
};

export const isAdmin = (permissionLevel: string | number): boolean => {
return (
Number(permissionLevel) === 1 ||
Number(permissionLevel) === 3 ||
Number(permissionLevel) === 5 ||
Number(permissionLevel) === 7
);
};
Loading

0 comments on commit 60b94f9

Please sign in to comment.