From d2797365e136a73c449c9a1e34fbecfaee4bf0b9 Mon Sep 17 00:00:00 2001 From: Ilya Date: Mon, 5 Feb 2024 20:08:05 +0300 Subject: [PATCH 1/3] fix: displaying the user creation block on the Members tab --- .../components/MemberCreated.tsx | 4 +- .../__generated__/members.generated.tsx | 37 +++++++++++++++++-- .../src/memberships/queries/members.graphql | 7 ++++ packages/ui/src/memberships/types/Member.ts | 7 +++- packages/ui/src/memberships/types/casting.ts | 3 +- 5 files changed, 52 insertions(+), 6 deletions(-) diff --git a/packages/ui/src/memberships/components/MemberListItem/components/MemberCreated.tsx b/packages/ui/src/memberships/components/MemberListItem/components/MemberCreated.tsx index 17cbabcc29..5cfd4049f3 100644 --- a/packages/ui/src/memberships/components/MemberListItem/components/MemberCreated.tsx +++ b/packages/ui/src/memberships/components/MemberListItem/components/MemberCreated.tsx @@ -13,7 +13,9 @@ export const MemberCreated = React.memo(({ member }: MemberCreatedProps) => { {new Date(member.createdAt).toLocaleDateString('en-GB')} {member.entry && member.entry.type !== 'genesis' && ( - {member.entry.block.number} block + + {member.entry.block.number.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',')} block + )} ) diff --git a/packages/ui/src/memberships/queries/__generated__/members.generated.tsx b/packages/ui/src/memberships/queries/__generated__/members.generated.tsx index 07b83ba1c1..bb5d602a60 100644 --- a/packages/ui/src/memberships/queries/__generated__/members.generated.tsx +++ b/packages/ui/src/memberships/queries/__generated__/members.generated.tsx @@ -64,7 +64,15 @@ export type MemberWithDetailsFieldsFragment = { } entry: | { __typename: 'MembershipEntryGenesis'; phantom?: number | null } - | { __typename: 'MembershipEntryGifted' } + | { + __typename: 'MembershipEntryGifted' + membershipGiftedEvent?: { + __typename: 'MembershipGiftedEvent' + createdAt: any + inBlock: number + network: Types.Network + } | null + } | { __typename: 'MembershipEntryInvited' memberInvitedEvent?: { @@ -248,7 +256,15 @@ export type GetMembersWithDetailsQuery = { } entry: | { __typename: 'MembershipEntryGenesis'; phantom?: number | null } - | { __typename: 'MembershipEntryGifted' } + | { + __typename: 'MembershipEntryGifted' + membershipGiftedEvent?: { + __typename: 'MembershipGiftedEvent' + createdAt: any + inBlock: number + network: Types.Network + } | null + } | { __typename: 'MembershipEntryInvited' memberInvitedEvent?: { @@ -394,7 +410,15 @@ export type GetMemberQuery = { } entry: | { __typename: 'MembershipEntryGenesis'; phantom?: number | null } - | { __typename: 'MembershipEntryGifted' } + | { + __typename: 'MembershipEntryGifted' + membershipGiftedEvent?: { + __typename: 'MembershipGiftedEvent' + createdAt: any + inBlock: number + network: Types.Network + } | null + } | { __typename: 'MembershipEntryInvited' memberInvitedEvent?: { @@ -720,6 +744,13 @@ export const MemberWithDetailsFieldsFragmentDoc = gql` network } } + ... on MembershipEntryGifted { + membershipGiftedEvent { + createdAt + inBlock + network + } + } ... on MembershipEntryGenesis { phantom } diff --git a/packages/ui/src/memberships/queries/members.graphql b/packages/ui/src/memberships/queries/members.graphql index b9a2ed65b0..7ac7666664 100644 --- a/packages/ui/src/memberships/queries/members.graphql +++ b/packages/ui/src/memberships/queries/members.graphql @@ -72,6 +72,13 @@ fragment MemberWithDetailsFields on Membership { network } } + ... on MembershipEntryGifted { + membershipGiftedEvent { + createdAt + inBlock + network + } + } ... on MembershipEntryGenesis { phantom } diff --git a/packages/ui/src/memberships/types/Member.ts b/packages/ui/src/memberships/types/Member.ts index 1a7e07636c..8deda5114a 100644 --- a/packages/ui/src/memberships/types/Member.ts +++ b/packages/ui/src/memberships/types/Member.ts @@ -46,7 +46,12 @@ export type PaidEntry = { block: Block } -export type MemberEntry = GenesisEntry | InvitedEntry | PaidEntry +export type GiftedEntry = { + type: 'gifted' + block: Block +} + +export type MemberEntry = GenesisEntry | InvitedEntry | PaidEntry | GiftedEntry // Temporary fix for: https://github.com/Joystream/pioneer/issues/1493 export type InvitedMember = Member // & { entry: InvitedEntry } diff --git a/packages/ui/src/memberships/types/casting.ts b/packages/ui/src/memberships/types/casting.ts index 2b0b8cfb4c..75e6297843 100644 --- a/packages/ui/src/memberships/types/casting.ts +++ b/packages/ui/src/memberships/types/casting.ts @@ -46,8 +46,9 @@ const asMemberEntry = (entry: MemberWithDetailsFieldsFragment['entry']): MemberE return { type: 'paid', block: asBlock(entry.membershipBoughtEvent) } } else if (entry.__typename === 'MembershipEntryInvited' && entry.memberInvitedEvent) { return { type: 'invited', block: asBlock(entry.memberInvitedEvent) } + } else if (entry.__typename === 'MembershipEntryGifted' && entry.membershipGiftedEvent) { + return { type: 'gifted', block: asBlock(entry.membershipGiftedEvent) } } - return { type: 'genesis' } } From c69d590105491633e164a1271abe19f3346cf14a Mon Sep 17 00:00:00 2001 From: Ilya Date: Tue, 6 Feb 2024 17:29:14 +0300 Subject: [PATCH 2/3] fix: displayin the creation date and block for initial users --- .../__generated__/members.generated.tsx | 37 +++++++++++++++++-- .../src/memberships/queries/members.graphql | 7 ++++ packages/ui/src/memberships/types/Member.ts | 7 +++- packages/ui/src/memberships/types/casting.ts | 2 + 4 files changed, 49 insertions(+), 4 deletions(-) diff --git a/packages/ui/src/memberships/queries/__generated__/members.generated.tsx b/packages/ui/src/memberships/queries/__generated__/members.generated.tsx index bb5d602a60..7ec89300fb 100644 --- a/packages/ui/src/memberships/queries/__generated__/members.generated.tsx +++ b/packages/ui/src/memberships/queries/__generated__/members.generated.tsx @@ -82,7 +82,15 @@ export type MemberWithDetailsFieldsFragment = { network: Types.Network } | null } - | { __typename: 'MembershipEntryMemberCreated' } + | { + __typename: 'MembershipEntryMemberCreated' + memberCreatedEvent?: { + __typename: 'MemberCreatedEvent' + createdAt: any + inBlock: number + network: Types.Network + } | null + } | { __typename: 'MembershipEntryPaid' membershipBoughtEvent?: { @@ -274,7 +282,15 @@ export type GetMembersWithDetailsQuery = { network: Types.Network } | null } - | { __typename: 'MembershipEntryMemberCreated' } + | { + __typename: 'MembershipEntryMemberCreated' + memberCreatedEvent?: { + __typename: 'MemberCreatedEvent' + createdAt: any + inBlock: number + network: Types.Network + } | null + } | { __typename: 'MembershipEntryPaid' membershipBoughtEvent?: { @@ -428,7 +444,15 @@ export type GetMemberQuery = { network: Types.Network } | null } - | { __typename: 'MembershipEntryMemberCreated' } + | { + __typename: 'MembershipEntryMemberCreated' + memberCreatedEvent?: { + __typename: 'MemberCreatedEvent' + createdAt: any + inBlock: number + network: Types.Network + } | null + } | { __typename: 'MembershipEntryPaid' membershipBoughtEvent?: { @@ -751,6 +775,13 @@ export const MemberWithDetailsFieldsFragmentDoc = gql` network } } + ... on MembershipEntryMemberCreated { + memberCreatedEvent { + createdAt + inBlock + network + } + } ... on MembershipEntryGenesis { phantom } diff --git a/packages/ui/src/memberships/queries/members.graphql b/packages/ui/src/memberships/queries/members.graphql index 7ac7666664..191e1fd4c9 100644 --- a/packages/ui/src/memberships/queries/members.graphql +++ b/packages/ui/src/memberships/queries/members.graphql @@ -79,6 +79,13 @@ fragment MemberWithDetailsFields on Membership { network } } + ... on MembershipEntryMemberCreated { + memberCreatedEvent { + createdAt + inBlock + network + } + } ... on MembershipEntryGenesis { phantom } diff --git a/packages/ui/src/memberships/types/Member.ts b/packages/ui/src/memberships/types/Member.ts index 8deda5114a..b5b4c1695d 100644 --- a/packages/ui/src/memberships/types/Member.ts +++ b/packages/ui/src/memberships/types/Member.ts @@ -51,7 +51,12 @@ export type GiftedEntry = { block: Block } -export type MemberEntry = GenesisEntry | InvitedEntry | PaidEntry | GiftedEntry +export type CreatedEntry = { + type: 'created' + block: Block +} + +export type MemberEntry = GenesisEntry | InvitedEntry | PaidEntry | GiftedEntry | CreatedEntry // Temporary fix for: https://github.com/Joystream/pioneer/issues/1493 export type InvitedMember = Member // & { entry: InvitedEntry } diff --git a/packages/ui/src/memberships/types/casting.ts b/packages/ui/src/memberships/types/casting.ts index 75e6297843..de7a04f5ea 100644 --- a/packages/ui/src/memberships/types/casting.ts +++ b/packages/ui/src/memberships/types/casting.ts @@ -48,6 +48,8 @@ const asMemberEntry = (entry: MemberWithDetailsFieldsFragment['entry']): MemberE return { type: 'invited', block: asBlock(entry.memberInvitedEvent) } } else if (entry.__typename === 'MembershipEntryGifted' && entry.membershipGiftedEvent) { return { type: 'gifted', block: asBlock(entry.membershipGiftedEvent) } + } else if (entry.__typename === 'MembershipEntryMemberCreated' && entry.memberCreatedEvent) { + return { type: 'created', block: asBlock(entry.memberCreatedEvent) } } return { type: 'genesis' } } From 7abcb657c003785a201fd9c0ea8b5339ffe33bd9 Mon Sep 17 00:00:00 2001 From: Ilya Date: Thu, 8 Feb 2024 14:54:16 +0300 Subject: [PATCH 3/3] fix: incorrect membership creation dates --- .../MemberListItem/components/MemberCreated.tsx | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/packages/ui/src/memberships/components/MemberListItem/components/MemberCreated.tsx b/packages/ui/src/memberships/components/MemberListItem/components/MemberCreated.tsx index 5cfd4049f3..cd573c6c4e 100644 --- a/packages/ui/src/memberships/components/MemberListItem/components/MemberCreated.tsx +++ b/packages/ui/src/memberships/components/MemberListItem/components/MemberCreated.tsx @@ -9,14 +9,13 @@ export interface MemberCreatedProps { } export const MemberCreated = React.memo(({ member }: MemberCreatedProps) => { + const { entry, createdAt } = member + const block = entry.type === 'genesis' ? { number: 0, timestamp: createdAt } : entry.block + return ( - {new Date(member.createdAt).toLocaleDateString('en-GB')} - {member.entry && member.entry.type !== 'genesis' && ( - - {member.entry.block.number.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',')} block - - )} + {new Date(block.timestamp).toLocaleDateString('en-GB')} + {block.number.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',')} block ) })