Skip to content

Commit d49b504

Browse files
BA-2298: web package placeholder (#222)
* add placeholder * remove console.log * fix ts * moved two components * versionning
1 parent d788f69 commit d49b504

File tree

12 files changed

+64
-12
lines changed

12 files changed

+64
-12
lines changed

packages/components/CHANGELOG.md

+8
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
# @baseapp-frontend/components
22

3+
## 1.0.24
4+
5+
### Patch Changes
6+
7+
- Add user activities to the Activity Log
8+
- updated dependencies
9+
- @baseapp-frontend/components
10+
311
## 1.0.23
412

513
### Patch Changes

packages/components/modules/activity-log/common/graphql/queries/ActivityLogsFragment.ts

+8
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,14 @@ export const ActivityLogsFragmentQuery = graphql`
3131
node {
3232
id
3333
createdAt
34+
events {
35+
edges {
36+
node {
37+
label
38+
diff
39+
}
40+
}
41+
}
3442
verb
3543
url
3644
user {

packages/components/modules/activity-log/DateFilterChip/types.ts packages/components/modules/activity-log/web/ActivityLogComponent/DateFilterChip/types.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { FetchParameters } from '../common/types'
1+
import { FetchParameters } from '../../../common/types'
22

33
export interface DateFilterChipProps {
44
fetchParameters: FetchParameters

packages/components/modules/activity-log/DateFilterComponent/types.ts packages/components/modules/activity-log/web/ActivityLogComponent/DateFilterComponent/types.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { DateTime } from 'luxon'
22

3-
import { FetchParameters } from '../common/types'
3+
import { FetchParameters } from '../../../common/types'
44

55
export interface DateFilterComponentProps {
66
createdFrom: DateTime | null

packages/components/modules/activity-log/web/ActivityLogComponent/LogItem/index.tsx

+11-7
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,30 @@ import { FC } from 'react'
22

33
import { Box, Typography, useTheme } from '@mui/material'
44

5-
import { LogItemProps } from './types'
5+
import { getUpdateMessage } from '../utils'
6+
import { LogDiff, LogItemProps } from './types'
67

78
const verbMapping: { [key: string]: string } = {
89
'comments.add_comment': 'Created a comment',
910
'comments.change_comment': 'Edited a comment',
1011
'comments.delete_comment': 'Deleted a comment',
1112
'comments.reply_comment': 'Replied to a comment',
1213
'comments.pin_comment': 'Pinned a comment',
13-
'profiles.update_profile': 'Updated their profile',
1414
'baseapp_reactions.add_reaction': 'Added a reaction',
1515
}
1616

17-
const getDisplayText = (verb: string) => verbMapping[verb] ?? verb
18-
1917
const LogItem: FC<LogItemProps> = ({ log, sx }) => {
2018
const theme = useTheme()
21-
if (!log?.verb) {
22-
return null
19+
if (!log?.verb) return null
20+
21+
const getLogMessage = (verb: string, diff?: LogDiff) => {
22+
if (diff) return getUpdateMessage(verb, diff)
23+
return verbMapping[verb] ?? verb
2324
}
2425

26+
const diff = log.events?.edges?.[0]?.node?.diff ?? null
27+
const displayText = getLogMessage(log.verb, diff)
28+
2529
return (
2630
<Box
2731
sx={sx}
@@ -31,7 +35,7 @@ const LogItem: FC<LogItemProps> = ({ log, sx }) => {
3135
marginLeft="20px"
3236
>
3337
<Typography ml="30px" lineHeight="22px" color={theme.palette.text.secondary} variant="body2">
34-
{getDisplayText(log.verb)}
38+
{displayText}
3539
</Typography>
3640
</Box>
3741
)

packages/components/modules/activity-log/web/ActivityLogComponent/LogItem/types.ts

+10-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,15 @@
11
import { SxProps, Theme } from '@mui/system'
22

3-
import { ActivityLogNode } from '../../../common'
3+
import { ActivityLogsFragment$data } from '../../../../../__generated__/ActivityLogsFragment.graphql'
4+
5+
export type ActivityLogs = NonNullable<ActivityLogsFragment$data['activityLogs']>
6+
export type ActivityLogEdges = ActivityLogs['edges']
7+
export type ActivityLogNode = NonNullable<ActivityLogEdges[number]>['node']
8+
export type LogEvent = NonNullable<ActivityLogNode>['events']
9+
10+
export type LogEventEdges = NonNullable<LogEvent>['edges']
11+
export type LogEventEdgesNode = NonNullable<LogEventEdges[number]>['node']
12+
export type LogDiff = NonNullable<LogEventEdgesNode>['diff']
413

514
export interface LogItemProps {
615
log: ActivityLogNode

packages/components/modules/activity-log/web/ActivityLogComponent/index.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ import { Box, Typography } from '@mui/material'
88
import { useForm } from 'react-hook-form'
99

1010
import { SearchNotFoundState } from '../../../__shared__/web'
11-
import DateFilterChip from '../../DateFilterChip'
1211
import { FetchParameters, useActivityLogs } from '../../common'
12+
import DateFilterChip from './DateFilterChip'
1313
import EventFilterChip from './EventFilterChip'
1414
import DefaultLogGroups from './LogGroups'
1515
import { ActivityLogComponentProps, EventFilterOption } from './types'
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
export const getUpdateMessage = (verb: string, diff: Record<string, any>): string => {
2+
const baseMessage = `Updated ${verb.split('.')[0]}`
3+
4+
if (!diff) {
5+
return baseMessage
6+
}
7+
8+
const updateMessages: string[] = Object.keys(diff).map((key) => {
9+
switch (key) {
10+
case 'image':
11+
return 'Updated their profile picture'
12+
case 'banner_image':
13+
return 'Updated their profile banner'
14+
case 'biography':
15+
return 'Updated their bio'
16+
default:
17+
return `Updated ${key.replace('_', ' ')}`
18+
}
19+
})
20+
21+
return updateMessages.length > 0 ? updateMessages.join(', ') : baseMessage
22+
}

packages/components/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@baseapp-frontend/components",
33
"description": "BaseApp components modules such as comments, notifications, messages, and more.",
4-
"version": "1.0.23",
4+
"version": "1.0.24",
55
"sideEffects": false,
66
"scripts": {
77
"babel:transpile": "babel modules -d tmp-babel --extensions .ts,.tsx --ignore '**/__tests__/**','**/__storybook__/**'",

packages/components/schema.graphql

+1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ type ActivityLog implements Node {
1212
user: User
1313
ipAddress: String
1414
verb: String
15+
diff: GenericScalar
1516
visibility: VisibilityTypes
1617
url: String
1718
pk: Int!

0 commit comments

Comments
 (0)