From 6afd0818d3ae57b8659901a1d197be5e293be464 Mon Sep 17 00:00:00 2001 From: Traumschule <31551045+traumschule@users.noreply.github.com> Date: Mon, 12 Dec 2022 12:11:55 +0000 Subject: [PATCH] Stake changed Activities (#3458) (#3826) - Add 'Read more' on `StakeSlashedContent` to open `StakeChangedModal` - Rename 'Slashed with' to 'Amount' - Rename 'Status' with 'Action' - Hide Amount if empty - Hide Rationale if empty Co-authored-by: Joystream Stats --- .../StakeChanged/StakeChangedModal.tsx | 35 +++++++++++------- .../Activities/StakeSlashedContent.tsx | 37 ++++++++++++++++--- .../types/WorkingGroupActivity/types.ts | 2 +- 3 files changed, 53 insertions(+), 21 deletions(-) diff --git a/packages/ui/src/working-groups/components/Activities/ActivitiesModals/StakeChanged/StakeChangedModal.tsx b/packages/ui/src/working-groups/components/Activities/ActivitiesModals/StakeChanged/StakeChangedModal.tsx index 4f3f789692..396d69e33c 100644 --- a/packages/ui/src/working-groups/components/Activities/ActivitiesModals/StakeChanged/StakeChangedModal.tsx +++ b/packages/ui/src/working-groups/components/Activities/ActivitiesModals/StakeChanged/StakeChangedModal.tsx @@ -23,39 +23,46 @@ import { useEscape } from '@/common/hooks/useEscape' interface StakeChangedModalProps { onClose: () => void amount?: BN - eventType?: 'StakeIncreasedEvent' | 'StakeDecreasedEvent' + eventType?: 'StakeIncreasedEvent' | 'StakeDecreasedEvent' | 'StakeSlashedEvent' id?: string } +const actions = { + StakeIncreasedEvent: { past: 'increased', badge: 'increase' }, + StakeDecreasedEvent: { past: 'decreased', badge: 'decrease' }, + StakeSlashedEvent: { past: 'slashed', badge: 'slash' }, +} + export const StakeChangedModal = ({ onClose, amount, eventType, id }: StakeChangedModalProps) => { useEscape(() => onClose()) const slashingRationaleInfo = '' // hidden until needed + const action = eventType ? actions[eventType] : { past: 'changes', badge: 'change' } return ( - - Stake has been {eventType === 'StakeDecreasedEvent' ? 'reduced' : 'increased'} - + Stake has been {action.past} - {amount && eventType && id ? ( + {eventType && id ? ( - - {eventType === 'StakeDecreasedEvent' ? 'reduce' : 'increase'} - - - - - - + + {action.badge} - {false && ( + {amount && ( + + + + + + + )} + {slashingRationaleInfo.length > 0 && ( {slashingRationaleInfo} diff --git a/packages/ui/src/working-groups/components/Activities/StakeSlashedContent.tsx b/packages/ui/src/working-groups/components/Activities/StakeSlashedContent.tsx index d47bdef623..df000b8415 100644 --- a/packages/ui/src/working-groups/components/Activities/StakeSlashedContent.tsx +++ b/packages/ui/src/working-groups/components/Activities/StakeSlashedContent.tsx @@ -1,24 +1,49 @@ -import React from 'react' +import React, { useState } from 'react' import { ActivityContentComponent } from '@/common/components/Activities/ActivityContent' import { ButtonLink } from '@/common/components/buttons/Buttons' import { MemberModalLink } from '@/memberships/components/MemberModalLink' import { StakeSlashedActivity } from '@/working-groups/types' +import { StakeChangedModal } from './ActivitiesModals/StakeChanged/StakeChangedModal' + export const StakeSlashedContent: ActivityContentComponent = ({ activity, isOwn }) => { - const { member, groupName } = activity + const { eventType, member, groupName, id } = activity + const [isStakeSlashedModalOpen, setStakeSlashedModalOpen] = useState(false) if (isOwn) { - return <>Your stake was reduced by the {groupName} Working Group Lead. + return ( + <> + Your stake have been slashed by the {groupName} lead.{' '} + setStakeSlashedModalOpen(!isStakeSlashedModalOpen)}> + Read more + + {isStakeSlashedModalOpen && ( + setStakeSlashedModalOpen(!isStakeSlashedModalOpen)} + eventType={eventType} + id={id} + /> + )} + + ) } return ( <> - {member.handle} has been - reduced by the {groupName} Working Group Lead.{' '} - + The stake of{' '} + {member.handle} was slashed + by the {groupName} lead.{' '} + setStakeSlashedModalOpen(!isStakeSlashedModalOpen)}> Read more + {isStakeSlashedModalOpen && ( + setStakeSlashedModalOpen(!isStakeSlashedModalOpen)} + eventType={eventType} + id={id} + /> + )} ) } diff --git a/packages/ui/src/working-groups/types/WorkingGroupActivity/types.ts b/packages/ui/src/working-groups/types/WorkingGroupActivity/types.ts index 6c2376a156..850f5bddbc 100644 --- a/packages/ui/src/working-groups/types/WorkingGroupActivity/types.ts +++ b/packages/ui/src/working-groups/types/WorkingGroupActivity/types.ts @@ -79,7 +79,7 @@ export interface StakeSlashedActivity extends BaseActivity { } export interface StakeChangedActivity extends BaseActivity { - eventType: 'StakeIncreasedEvent' | 'StakeDecreasedEvent' + eventType: 'StakeIncreasedEvent' | 'StakeDecreasedEvent' | 'StakeSlashedEvent' member: MemberDisplayFields amount: BN }