Skip to content

Commit 4e4bb52

Browse files
committed
RTK identity traits
1 parent 15a6b18 commit 4e4bb52

File tree

5 files changed

+30
-29
lines changed

5 files changed

+30
-29
lines changed

frontend/common/services/useIdentityTrait.ts

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ function getUpdateTraitEndpoint(
1818
use_edge_identities: boolean,
1919
environmentId: string,
2020
userId: string,
21-
id?: number,
21+
id?: number | string,
2222
) {
2323
if (use_edge_identities) {
2424
return `/environments/${environmentId}/edge-identities/${userId}/update-traits/`
@@ -75,11 +75,10 @@ export const identityTraitService = service
7575
query: (query: Req['deleteIdentityTrait']) => {
7676
if (query.use_edge_identities) {
7777
return {
78-
body: getTraitBody(
79-
query.use_edge_identities,
80-
query.identity,
81-
query.data,
82-
),
78+
body: getTraitBody(query.use_edge_identities, query.identity, {
79+
...query.data,
80+
trait_value: null,
81+
}),
8382
method: 'PUT',
8483
url: getUpdateTraitEndpoint(
8584
query.use_edge_identities,

frontend/common/stores/identity-store.js

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -219,9 +219,6 @@ store.dispatcherIndex = Dispatcher.register(store, (payload) => {
219219
case Actions.REMOVE_USER_FLAG:
220220
controller.removeUserFlag(identity, identityFlag, environmentId, cb)
221221
break
222-
case Actions.DELETE_IDENTITY_TRAIT:
223-
controller.deleteIdentityTrait(action.envId, action.identity, action.id)
224-
break
225222
case Actions.CHANGE_USER_FLAG:
226223
controller.changeUserFlag(action.identity)
227224
break

frontend/web/components/IdentityTraits.tsx

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import {
1414
useDeleteIdentityTraitMutation,
1515
useGetIdentityTraitsQuery,
1616
} from 'common/services/useIdentityTrait'
17+
import { IdentityTrait } from 'common/types/responses'
1718

1819
type IdentityTraitsType = {
1920
projectId: string
@@ -27,18 +28,30 @@ const IdentityTraits: FC<IdentityTraitsType> = ({
2728
identityId,
2829
identityName,
2930
projectId,
30-
e
3131
}) => {
3232
const use_edge_identities = Utils.getIsEdge()
33+
34+
const { permission: manageUserPermission } = useHasPermission({
35+
id: environmentId,
36+
level: 'environment',
37+
permission: Utils.getManageUserPermission(),
38+
})
39+
3340
const { data: traits } = useGetIdentityTraitsQuery({
3441
environmentId,
3542
identity: identityId,
3643
use_edge_identities,
3744
})
3845

39-
const [deleteTrait, { isLoading: deletingTrat }] =
46+
const [deleteTrait, { isLoading: deletingTrait }] =
4047
useDeleteIdentityTraitMutation({})
4148

49+
//todo : https://github.com/Flagsmith/flagsmith/pull/5121 migrates this
50+
const onTraitSaved = () => {
51+
closeModal?.()
52+
AppActions.getIdentitySegments(projectId, identityId)
53+
}
54+
4255
const createTrait = () => {
4356
API.trackEvent(Constants.events.VIEW_USER_FEATURE)
4457
openModal(
@@ -55,11 +68,7 @@ const IdentityTraits: FC<IdentityTraitsType> = ({
5568
)
5669
}
5770

58-
const editTrait = (trait: {
59-
id: string
60-
trait_key: string
61-
trait_value: string
62-
}) => {
71+
const editTrait = (trait: IdentityTrait) => {
6372
openModal(
6473
'Edit User Trait',
6574
<CreateTraitModal
@@ -96,22 +105,17 @@ const IdentityTraits: FC<IdentityTraitsType> = ({
96105
environmentId,
97106
identity: identityId,
98107
use_edge_identities,
108+
}).then((res) => {
109+
// @ts-ignore
110+
if (!res?.error) {
111+
onTraitSaved()
112+
}
99113
}),
100114
title: 'Delete Trait',
101115
yesText: 'Confirm',
102116
})
103117
}
104118

105-
const onTraitSaved = () =>
106-
//todo : https://github.com/Flagsmith/flagsmith/pull/5121 migrates this
107-
AppActions.getIdentitySegments(projectId, identityId)
108-
}
109-
110-
const { permission: manageUserPermission } = useHasPermission({
111-
id: environmentId,
112-
level: 'environment',
113-
permission: Utils.getManageUserPermission(),
114-
})
115119
return (
116120
<FormGroup>
117121
<PanelSearch

frontend/web/components/modals/CreateTrait.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,12 @@ import {
2121
useCreateIdentityTraitMutation,
2222
useUpdateIdentityTraitMutation,
2323
} from 'common/services/useIdentityTrait'
24+
import { FlagsmithValue } from 'common/types/responses'
2425

2526
type CreateTraitProps = {
26-
id?: string
27+
id?: number | string
2728
trait_key?: string
28-
trait_value?: string
29+
trait_value?: FlagsmithValue
2930
identityName: string
3031
onSave?: () => void
3132
identity: string

frontend/web/components/pages/UserPage.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ import ConfirmToggleFeature from 'components/modals/ConfirmToggleFeature'
2222
import Constants from 'common/constants'
2323
import CreateFlagModal from 'components/modals/CreateFlag'
2424
import CreateSegmentModal from 'components/modals/CreateSegment'
25-
import CreateTraitModal from 'components/modals/CreateTrait'
2625
import EditIdentity from 'components/EditIdentity'
2726
import FeatureListStore from 'common/stores/feature-list-store'
2827
import FeatureValue from 'components/FeatureValue'
@@ -49,6 +48,7 @@ import TableValueFilter from 'components/tables/TableValueFilter'
4948
import TagValues from 'components/tags/TagValues'
5049
import TryIt from 'components/TryIt'
5150
import Utils from 'common/utils/utils'
51+
// @ts-ignore
5252
import _data from 'common/data/base/_data'
5353
import classNames from 'classnames'
5454
import moment from 'moment'

0 commit comments

Comments
 (0)