Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 0 additions & 3 deletions frontend/common/dispatcher/action-constants.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,18 +27,15 @@ const Actions = Object.assign({}, BaseActions, {
'ENABLE_TWO_FACTOR': 'ENABLE_TWO_FACTOR',
'GET_CHANGE_REQUEST': 'GET_CHANGE_REQUEST',
'GET_ENVIRONMENT': 'GET_ENVIRONMENT',
'GET_FLAGS': 'GET_FLAGS',
'GET_IDENTITY': 'GET_IDENTITY',
'GET_ORGANISATION': 'GET_ORGANISATION',
'GET_PROJECT': 'GET_PROJECT',
'INVALIDATE_INVITE_LINK': 'INVALIDATE_INVITE_LINK',
'MIGRATE_PROJECT': 'MIGRATE_PROJECT',
'OAUTH': 'OAUTH',
'REFRESH_FEATURES': 'REFRESH_FEATURES',
'REMOVE_FLAG': 'REMOVE_FLAG',
'REMOVE_USER_FLAG': 'REMOVE_USER_FLAG',
'RESEND_INVITE': 'RESEND_INVITE',
'SEARCH_FLAGS': 'SEARCH_FLAGS',
'SELECT_ENVIRONMENT': 'SELECT_ENVIRONMENT',
'SELECT_ORGANISATION': 'SELECT_ORGANISATION',
'TOGGLE_USER_FLAG': 'TOGGLE_USER_FLAG',
Expand Down
49 changes: 0 additions & 49 deletions frontend/common/dispatcher/app-actions.js
Original file line number Diff line number Diff line change
Expand Up @@ -200,28 +200,6 @@ const AppActions = Object.assign({}, BaseAppActions, {
projectId,
})
},
getFeatures(
projectId,
environmentId,
force,
search,
sort,
page,
filter,
pageSize,
) {
Dispatcher.handleViewAction({
actionType: Actions.GET_FLAGS,
environmentId,
filter,
force,
page,
pageSize,
projectId,
search,
sort,
})
},
getIdentity(envId, id) {
Dispatcher.handleViewAction({
actionType: Actions.GET_IDENTITY,
Expand Down Expand Up @@ -273,13 +251,6 @@ const AppActions = Object.assign({}, BaseAppActions, {
force: true,
})
},
removeFlag(projectId, flag) {
Dispatcher.handleViewAction({
actionType: Actions.REMOVE_FLAG,
flag,
projectId,
})
},
removeUserFlag({ cb, environmentId, identity, identityFlag }) {
Dispatcher.handleViewAction({
actionType: Actions.REMOVE_USER_FLAG,
Expand Down Expand Up @@ -307,26 +278,6 @@ const AppActions = Object.assign({}, BaseAppActions, {
name,
})
},
searchFeatures(
projectId,
environmentId,
force,
search,
sort,
filter,
pageSize,
) {
Dispatcher.handleViewAction({
actionType: Actions.SEARCH_FLAGS,
environmentId,
filter,
force,
pageSize,
projectId,
search,
sort,
})
},
selectOrganisation(id) {
Dispatcher.handleViewAction({
actionType: Actions.SELECT_ORGANISATION,
Expand Down
9 changes: 0 additions & 9 deletions frontend/common/providers/FeatureListProvider.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,6 @@ const FeatureListProvider = class extends React.Component {
totalFeatures: ProjectStore.getTotalFeatures(),
})
})
this.listenTo(FeatureListStore, 'removed', (data) => {
this.props.onRemove?.(data)
})

this.listenTo(FeatureListStore, 'saved', (data) => {
this.props.onSave && this.props.onSave(data)
})
Expand Down Expand Up @@ -235,10 +231,6 @@ const FeatureListProvider = class extends React.Component {
)
}

removeFlag = (projectId, flag) => {
AppActions.removeFlag(projectId, flag)
}

render() {
return this.props.children(
{
Expand All @@ -251,7 +243,6 @@ const FeatureListProvider = class extends React.Component {
editFeatureSettings: this.editFeatureSettings,
editFeatureValue: this.editFeatureValue,
environmentHasFlag: FeatureListStore.hasFlagInEnvironment,
removeFlag: this.removeFlag,
toggleFlag: this.toggleFlag,
},
)
Expand Down
11 changes: 11 additions & 0 deletions frontend/common/services/useProjectFlag.ts
Original file line number Diff line number Diff line change
Expand Up @@ -253,6 +253,17 @@ export async function createProjectFlag(
projectFlagService.endpoints.createProjectFlag.initiate(data, options),
)
}
export async function removeProjectFlag(
store: any,
data: Req['removeProjectFlag'],
options?: Parameters<
typeof projectFlagService.endpoints.removeProjectFlag.initiate
>[1],
) {
return store.dispatch(
projectFlagService.endpoints.removeProjectFlag.initiate(data, options),
)
}

export const {
useAddFlagGroupOwnersMutation,
Expand Down
53 changes: 1 addition & 52 deletions frontend/common/stores/feature-list-store.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import Constants from 'common/constants'
import { getIsWidget } from 'components/pages/WidgetPage'
import ProjectStore from './project-store'
import {
createAndSetFeatureVersion,
Expand Down Expand Up @@ -938,9 +937,7 @@ const controller = {
store.loaded()
})
.catch((e) => {
if (!getIsWidget()) {
document.location.href = '/404?entity=environment'
}
document.location.href = '/404?entity=environment'
API.ajaxHandler(store, e)
})
},
Expand All @@ -958,24 +955,6 @@ const controller = {
})),
}
},
removeFlag: (projectId, flag) => {
store.saving()
API.trackEvent(Constants.events.REMOVE_FEATURE)
return data
.delete(`${Project.api}projects/${projectId}/features/${flag.id}/`)
.then(() => {
store.model.features = _.filter(
store.model.features,
(f) => f.id !== flag.id,
)
store.model.lastSaved = new Date().valueOf()
getStore().dispatch(
projectFlagService.util.invalidateTags(['ProjectFlag']),
)
store.saved({})
store.trigger('removed', flag)
})
},
searchFeatures: _.throttle(
(search, environmentId, projectId, filter, pageSize) => {
store.search = encodeURIComponent(search || '')
Expand Down Expand Up @@ -1023,33 +1002,6 @@ store.dispatcherIndex = Dispatcher.register(store, (payload) => {
const action = payload.action // this is our action from handleViewAction
const projectId = parseInt(action.projectId)
switch (action.actionType) {
case Actions.SEARCH_FLAGS: {
if (action.sort) {
store.sort = action.sort
}
controller.searchFeatures(
action.search,
action.environmentId,
projectId,
action.filter,
action.pageSize,
)
break
}
case Actions.GET_FLAGS:
store.search = encodeURIComponent(action.search || '')
if (action.sort) {
store.sort = action.sort
}
controller.getFeatures(
projectId,
action.environmentId,
action.force,
action.page,
action.filter,
action.pageSize,
)
break
case Actions.REFRESH_FEATURES:
if (
projectId === store.projectId &&
Expand Down Expand Up @@ -1097,9 +1049,6 @@ store.dispatcherIndex = Dispatcher.register(store, (payload) => {
case Actions.EDIT_FEATURE_MV:
controller.editFeatureMv(projectId, action.flag, action.onComplete)
break
case Actions.REMOVE_FLAG:
controller.removeFlag(projectId, action.flag)
break
default:
}
})
Expand Down
100 changes: 32 additions & 68 deletions frontend/common/stores/project-store.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import { getIsWidget } from 'components/pages/WidgetPage'
import OrganisationStore from './organisation-store'

import Constants from 'common/constants'
Expand Down Expand Up @@ -129,76 +128,41 @@ const controller = {
},
getProject: (id, cb, force) => {
if (!id) {
if (!getIsWidget()) {
!force && AsyncStorage.removeItem('lastEnv')
document.location.href = '/404'
}
} else if (force) {
store.loading()
!force && AsyncStorage.removeItem('lastEnv')
document.location.href = '/404'
return
}

return Promise.all([
data.get(`${Project.api}projects/${id}/`),
data.get(`${Project.api}environments/?project=${id}`).catch(() => []),
])
.then(([project, environments]) => {
project.max_segments_allowed = project.max_segments_allowed
project.max_features_allowed = project.max_features_allowed
project.max_segment_overrides_allowed =
project.max_segment_overrides_allowed
project.total_features = project.total_features || 0
project.total_segments = project.total_segments || 0
store.model = Object.assign(project, {
environments: _.sortBy(environments.results, 'name'),
})
if (project.organisation !== OrganisationStore.id) {
AppActions.selectOrganisation(project.organisation)
AppActions.getOrganisation(project.organisation)
}
store.id = id
store.loaded()
if (cb) {
cb()
}
})
.catch(() => {
if (!getIsWidget()) {
document.location.href = '/404?entity=project'
}
})
} else if (!store.model || !store.model.environments || store.id !== id) {
store.loading()
if (!force && store.model && store.model.environments && store.id === id) {
return
}

Promise.all([
data.get(`${Project.api}projects/${id}/`),
data.get(`${Project.api}environments/?project=${id}`).catch(() => []),
])
.then(([project, environments]) => {
project.max_segments_allowed = project.max_segments_allowed
project.max_features_allowed = project.max_features_allowed
project.max_segment_overrides_allowed =
project.max_segment_overrides_allowed
project.total_features = project.total_features || 0
project.total_segments = project.total_segments || 0
store.model = Object.assign(project, {
environments: _.sortBy(environments.results, 'name'),
})
if (project.organisation !== OrganisationStore.id) {
AppActions.selectOrganisation(project.organisation)
AppActions.getOrganisation(project.organisation)
}
store.id = id
store.loaded()
if (cb) {
cb()
}
})
.catch(() => {
if (!getIsWidget()) {
AsyncStorage.removeItem('lastEnv')
document.location.href = '/404?entity=project'
}
store.loading()

return Promise.all([
data.get(`${Project.api}projects/${id}/`),
data.get(`${Project.api}environments/?project=${id}`).catch(() => []),
])
.then(([project, environments]) => {
project.total_features = project.total_features || 0
project.total_segments = project.total_segments || 0
store.model = Object.assign(project, {
environments: _.sortBy(environments.results, 'name'),
})
}
if (project.organisation !== OrganisationStore.id) {
AppActions.selectOrganisation(project.organisation)
AppActions.getOrganisation(project.organisation)
}
store.id = id
store.loaded()
if (cb) {
cb()
}
})
.catch(() => {
AsyncStorage.removeItem('lastEnv')
document.location.href = '/404?entity=project'
})
},
migrateProject: (id) => {
store.loading()
Expand Down
1 change: 1 addition & 0 deletions frontend/common/types/requests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -892,6 +892,7 @@ export type Req = {
tag_strategy?: TagStrategy
sort_field?: string
sort_direction?: 'ASC' | 'DESC'
identity?: string
}
updateFeatureState: {
environmentId: string
Expand Down
1 change: 0 additions & 1 deletion frontend/common/types/responses.ts
Original file line number Diff line number Diff line change
Expand Up @@ -652,7 +652,6 @@ export type FeatureListProviderActions = {
projectFlag: ProjectFlag,
environmentFlags: FeatureState | undefined,
) => void
removeFlag: (projectId: number, projectFlag: ProjectFlag) => void
}

export type AuthType = 'EMAIL' | 'GITHUB' | 'GOOGLE'
Expand Down
Loading
Loading