Skip to content
Permalink

Comparing changes

This is a direct comparison between two commits made in this repository or its related repositories. View the default comparison for this range or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: silverlogic/baseapp-frontend
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 83d187aa6664784f84a5239d6f07460777beb2a6
Choose a base ref
..
head repository: silverlogic/baseapp-frontend
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 8dfde2030d50fbf67e4972d2f39a08cca1c6a64f
Choose a head ref
Showing with 1,899 additions and 382 deletions.
  1. +4 −1 packages/components/CHANGELOG.md
  2. +255 −0 packages/components/__generated__/ActivityLogsFragment.graphql.ts
  3. +1 −1 packages/components/modules/comments/web/CommentItem/index.tsx
  4. +7 −0 packages/components/modules/messages/common/constants.ts
  5. +1 −0 packages/components/modules/messages/common/graphql/fragments/RoomTitle.ts
  6. +3 −1 packages/components/modules/messages/common/types.ts
  7. +21 −2 packages/components/modules/messages/common/utils.ts
  8. +10 −2 packages/components/modules/messages/web/ChatRoom/ChatRoomHeader/index.tsx
  9. +2 −1 packages/components/modules/messages/web/CreateChatRoomList/ChatRoomListItem/index.tsx
  10. +9 −25 packages/components/modules/messages/web/CreateChatRoomList/index.tsx
  11. +0 −62 packages/components/modules/messages/web/CreateGroup/ConnectionsList/index.tsx
  12. +0 −20 packages/components/modules/messages/web/CreateGroup/ConnectionsList/types.ts
  13. +0 −9 packages/components/modules/messages/web/CreateGroup/ProfileCard/types.ts
  14. +0 −28 packages/components/modules/messages/web/CreateGroup/constants.ts
  15. +29 −122 packages/components/modules/messages/web/CreateGroup/index.tsx
  16. +0 −7 packages/components/modules/messages/web/CreateGroup/styled.tsx
  17. +3 −16 packages/components/modules/messages/web/CreateGroup/types.ts
  18. +74 −0 packages/components/modules/messages/web/EditGroup/AddMemberCard/index.tsx
  19. +16 −0 packages/components/modules/messages/web/EditGroup/AddMemberCard/styled.tsx
  20. +9 −0 packages/components/modules/messages/web/EditGroup/AddMemberCard/types.ts
  21. +11 −0 packages/components/modules/messages/web/EditGroup/AddMembersDialog/constants.ts
  22. +245 −0 packages/components/modules/messages/web/EditGroup/AddMembersDialog/index.tsx
  23. +6 −0 packages/components/modules/messages/web/EditGroup/AddMembersDialog/styled.tsx
  24. +18 −0 packages/components/modules/messages/web/EditGroup/AddMembersDialog/types.ts
  25. +11 −0 packages/components/modules/messages/web/EditGroup/AddMembersMobile/constants.ts
  26. +206 −0 packages/components/modules/messages/web/EditGroup/AddMembersMobile/index.tsx
  27. +6 −0 packages/components/modules/messages/web/EditGroup/AddMembersMobile/styled.tsx
  28. +17 −0 packages/components/modules/messages/web/EditGroup/AddMembersMobile/types.ts
  29. +53 −0 packages/components/modules/messages/web/EditGroup/AddedMemberCard/index.tsx
  30. +13 −0 packages/components/modules/messages/web/EditGroup/AddedMemberCard/styled.tsx
  31. +6 −0 packages/components/modules/messages/web/EditGroup/AddedMemberCard/types.ts
  32. +9 −19 packages/components/modules/messages/web/EditGroup/constants.ts
  33. +83 −3 packages/components/modules/messages/web/EditGroup/index.tsx
  34. +9 −11 packages/components/modules/messages/web/EditGroup/types.ts
  35. +0 −10 packages/components/modules/messages/web/GroupDetails/ProfileCard/constants.ts
  36. +1 −1 packages/components/modules/messages/web/GroupDetails/ProfileCard/index.tsx
  37. +4 −16 packages/components/modules/messages/web/GroupDetails/index.tsx
  38. +1 −1 packages/components/modules/messages/web/MessagesList/MessagesGroup/UserMessage/types.ts
  39. +1 −1 packages/components/modules/messages/web/MessagesList/MessagesGroup/types.ts
  40. +9 −5 ...onents/modules/messages/web/{CreateGroup → __shared__/GroupChatMembersList}/ProfileCard/index.tsx
  41. 0 ...ssages/web/{CreateGroup/ConnectionsList → __shared__/GroupChatMembersList/ProfileCard}/styled.tsx
  42. +8 −0 packages/components/modules/messages/web/__shared__/GroupChatMembersList/ProfileCard/types.ts
  43. +94 −0 packages/components/modules/messages/web/__shared__/GroupChatMembersList/ProfilesList/index.tsx
  44. 0 .../messages/web/{CreateGroup/ProfileCard → __shared__/GroupChatMembersList/ProfilesList}/styled.tsx
  45. +25 −0 packages/components/modules/messages/web/__shared__/GroupChatMembersList/ProfilesList/types.ts
  46. +136 −0 packages/components/modules/messages/web/__shared__/GroupChatMembersList/index.tsx
  47. +18 −0 packages/components/modules/messages/web/__shared__/GroupChatMembersList/styled.tsx
  48. +38 −0 packages/components/modules/messages/web/__shared__/GroupChatMembersList/types.ts
  49. +36 −0 packages/components/modules/messages/web/__shared__/LeaveGroupDialog/constants.ts
  50. +36 −8 packages/components/modules/messages/web/__shared__/LeaveGroupDialog/index.tsx
  51. +7 −7 packages/components/modules/messages/web/__shared__/LeaveGroupDialog/types.ts
  52. +36 −0 packages/components/modules/messages/web/__shared__/constants.ts
  53. +21 −0 packages/components/modules/messages/web/__shared__/types.ts
  54. +1 −1 packages/components/modules/profiles/common/graphql/queries/AllProfilesList.ts
  55. +8 −0 packages/design-system/CHANGELOG.md
  56. +52 −0 packages/design-system/components/web/buttons/AvatarButton/__storybook__/AvatarButton.mdx
  57. +42 −0 packages/design-system/components/web/buttons/AvatarButton/__storybook__/stories.tsx
  58. +37 −0 packages/design-system/components/web/buttons/AvatarButton/index.tsx
  59. +13 −0 packages/design-system/components/web/buttons/AvatarButton/styled.tsx
  60. +10 −0 packages/design-system/components/web/buttons/AvatarButton/types.ts
  61. +3 −0 packages/design-system/components/web/buttons/index.ts
  62. +8 −1 packages/design-system/components/web/dialogs/ConfirmDialog/index.tsx
  63. +5 −0 packages/design-system/components/web/dialogs/ConfirmDialog/types.ts
  64. +42 −0 packages/design-system/components/web/icons/AddMemberIcon/index.tsx
  65. +18 −0 packages/design-system/components/web/icons/FilledCloseIcon/index.tsx
  66. +48 −0 packages/design-system/components/web/icons/NewGroupIcon/index.tsx
  67. +3 −0 packages/design-system/components/web/icons/index.ts
  68. +1 −1 packages/design-system/package.json
5 changes: 4 additions & 1 deletion packages/components/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -4,7 +4,10 @@

### Patch Changes

- Implementing remove profile member
- Enable adding a member to an existing group
- Refactor member and contacts list into a reusable component
- Updated dependencies
- @baseapp-frontend/design-system@1.0.5

## 1.0.9

255 changes: 255 additions & 0 deletions packages/components/__generated__/ActivityLogsFragment.graphql.ts

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -2,10 +2,10 @@

import { FC, useRef, useState, useTransition } from 'react'

import { AvatarWithPlaceholder } from '@baseapp-frontend/design-system/components/web/avatars'

import { Typography } from '@mui/material'
import { useRefetchableFragment } from 'react-relay'
import { AvatarWithPlaceholder } from '@baseapp-frontend/design-system/components/web/avatars'

import { CommentItemRefetchQuery } from '../../../../__generated__/CommentItemRefetchQuery.graphql'
import { CommentItem_comment$key } from '../../../../__generated__/CommentItem_comment.graphql'
7 changes: 7 additions & 0 deletions packages/components/modules/messages/common/constants.ts
Original file line number Diff line number Diff line change
@@ -4,3 +4,10 @@ export const MESSAGE_TYPE = {
user: 'USER_MESSAGE',
system: 'SYSTEM_GENERATED',
} as const

export const CHAT_ROOM_PARTICIPANT_ROLES = {
admin: 'ADMIN',
member: 'MEMBER',
} as const

export const ADMIN_LABEL = 'Admin'
Original file line number Diff line number Diff line change
@@ -14,6 +14,7 @@ export const RoomTitleFragment = graphql`
url
}
}
role
}
}
}
4 changes: 3 additions & 1 deletion packages/components/modules/messages/common/types.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
import { ValueOf } from '@baseapp-frontend/utils'

import { MessagesListFragment$data } from '../../../__generated__/MessagesListFragment.graphql'
import { MESSAGE_TYPE } from './constants'
import { CHAT_ROOM_PARTICIPANT_ROLES, MESSAGE_TYPE } from './constants'

export type AllMessages = NonNullable<MessagesListFragment$data['allMessages']>
export type MessageEdges = AllMessages['edges']
export type MessageNode = NonNullable<MessageEdges[number]>['node']

export type MessageTypeOptions = ValueOf<typeof MESSAGE_TYPE>

export type ChatRoomParticipantRoles = ValueOf<typeof CHAT_ROOM_PARTICIPANT_ROLES>
23 changes: 21 additions & 2 deletions packages/components/modules/messages/common/utils.ts
Original file line number Diff line number Diff line change
@@ -5,13 +5,20 @@ import ConnectionHandler from 'relay-connection-handler-plus'
import { RecordProxy, RecordSourceSelectorProxy, Variables } from 'relay-runtime'

import { GroupTitleFragment$key } from '../../../__generated__/GroupTitleFragment.graphql'
import { MembersListFragment$data } from '../../../__generated__/MembersListFragment.graphql'
import { RoomTitleFragment$key } from '../../../__generated__/RoomTitleFragment.graphql'
import { TitleFragment$data } from '../../../__generated__/TitleFragment.graphql'
import { CHAT_ROOM_PARTICIPANT_ROLES } from './constants'
import { GroupTitleFragment } from './graphql/fragments/GroupTitle'
import { RoomTitleFragment } from './graphql/fragments/RoomTitle'

export const useGroupNameAndAvatar = (headerRef: GroupTitleFragment$key | null | undefined) => {
const header = useFragment<GroupTitleFragment$key>(GroupTitleFragment, headerRef)
export const useGroupNameAndAvatar = (
headerRef: GroupTitleFragment$key | RoomTitleFragment$key | null | undefined,
) => {
const header = useFragment<GroupTitleFragment$key>(
GroupTitleFragment,
headerRef as GroupTitleFragment$key,
)
return {
title: header?.title,
avatar: header?.image?.url,
@@ -26,6 +33,7 @@ const useRoomNameAndAvatar = (headerRef: RoomTitleFragment$key | null | undefine
title: 'Error: No participants',
}
}

const otherParticipant = header.participants.edges.find(
(edge) => edge?.node?.profile?.id && edge?.node?.profile?.id !== currentProfile?.id,
)
@@ -60,3 +68,14 @@ export const getChatRoomConnections: (
}
return []
}

export const useCheckIsAdmin = (participants: MembersListFragment$data['participants']) => {
const { currentProfile } = useCurrentProfile()
const me = participants?.edges?.find((edge) => edge?.node?.profile?.id === currentProfile?.id)
const isAdmin = me?.node?.role === CHAT_ROOM_PARTICIPANT_ROLES.admin
const isSoleAdmin =
isAdmin &&
participants?.edges?.filter((edge) => edge?.node?.role === CHAT_ROOM_PARTICIPANT_ROLES.admin)
.length === 1
return { isAdmin, isSoleAdmin }
}
Loading