Skip to content

Commit

Permalink
fix(FOROME-299): load preset on dropdown change
Browse files Browse the repository at this point in the history
* fix(FOROME-299): load preset on dropdown change
  • Loading branch information
Lapk1n authored Mar 9, 2022
1 parent 76e132c commit 8ca7e89
Show file tree
Hide file tree
Showing 20 changed files with 1,551 additions and 1,207 deletions.
1 change: 0 additions & 1 deletion src/core/enum/action-filter.enum.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
export enum ActionFilterEnum {
Load = 'Load',
Create = 'Create',
Modify = 'Modify',
Join = 'Join',
Expand Down
4 changes: 4 additions & 0 deletions src/i18n/locales/en.ts
Original file line number Diff line number Diff line change
Expand Up @@ -219,6 +219,10 @@ export const en = {
tooLongNote: 'Note is too long',
tagNameIsTooLong: 'Tag name is too long',
dtreeNameIsNotValid: 'Decision tree name is not valid',
noChangesToModify: 'There are no changes to modify',
choosePresetFirst: 'Choose preset first',
chooseFiltersFirst: 'Choose filters first',
cantJoinTheSamePreset: 'Cant join the same preset',
},
igv: {
openIgv: 'Open igv',
Expand Down
2 changes: 1 addition & 1 deletion src/pages/filter/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import { Header } from '@components/header'
import { GlbPagesNames } from '@glb/glb-names'
import { ModalNumbers } from '@pages/filter/ui/modal-edit/components/modal-numbers'
import { ErrorPage } from '../error/error'
import { FilterControl } from './ui/filter-control'
import { FilterControl } from './ui/filter-control/filter-control'
import { ModalEditCompoundHet } from './ui/modal-edit/components/modal-edit-compound-het'
import { ModalEditCompoundRequest } from './ui/modal-edit/components/modal-edit-compound-request'
import { ModalEditCustomInheritanceMode } from './ui/modal-edit/components/modal-edit-custom-inheritance-mode'
Expand Down
180 changes: 0 additions & 180 deletions src/pages/filter/ui/filter-control-refiner.tsx

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ import { PopperButton } from '@components/popper-button'
import { DatasetCreationButton } from '@pages/ws/ui/dataset-creation-button'
import { showToast } from '@utils/notifications/showToast'
import { validatePresetName } from '@utils/validation/validatePresetName'
import { DtreeModal } from './dtree-modal'
import { FilterButton } from './filter-button'
import { DtreeModal } from '../../dtree-modal'
import { FilterButton } from '../../filter-button'

export const FilterControlQueryBuilder = observer((): ReactElement => {
const [activeTree, setActiveTree] = useState('')
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
import { get } from 'lodash'
import { makeAutoObservable } from 'mobx'

import { FilterList } from '@declarations'
import { ActionFilterEnum } from '@core/enum/action-filter.enum'
import { t } from '@i18n'
import datasetStore from '@store/dataset'
import filterStore from '@store/filter'
import presetStore from '@store/filterPreset'
import { compareConditions } from '@utils/filter-refiner/compareConditions'
import { showToast } from '@utils/notifications/showToast'
import { validatePresetName } from '@utils/validation/validatePresetName'

class FilterControlRefinerStore {
constructor() {
makeAutoObservable(this)
}

get activePreset(): string {
return datasetStore.activePreset
}

get presets(): string[] {
return get(datasetStore, 'dsStat.filter-list', [])
.filter(this.isPresetAbleToBeModified)
.map((preset: FilterList) => preset.name)
}

public isPresetAbleToBeModified(preset: FilterList): boolean {
return filterStore.actionName === ActionFilterEnum.Delete ||
filterStore.actionName === ActionFilterEnum.Modify
? !preset.standard
: true
}

public applyAction = (
createPresetName: string,
isSelectedFiltersEmpty: boolean,
): void => {
if (filterStore.actionName === ActionFilterEnum.Delete) {
presetStore.deletePreset()
}

if (filterStore.actionName === ActionFilterEnum.Join) {
if (!datasetStore.activePreset) {
showToast(t('error.choosePresetFirst'), 'error')

return
}

const isConditionsAbleToJoin = compareConditions({
currentConditions: datasetStore.conditions,
startConditions: datasetStore.startPresetConditions,
currentPreset: datasetStore.activePreset,
prevPreset: datasetStore.prevPreset,
})

if (!isConditionsAbleToJoin) {
showToast(t('error.cantJoinTheSamePreset'), 'error')

return
}

presetStore.joinPreset(datasetStore.activePreset)
}

if (filterStore.actionName === ActionFilterEnum.Create) {
const isPresetNameValid = validatePresetName(createPresetName)

if (!isPresetNameValid) {
showToast(t('filter.notValidName'), 'error')

return
}

if (isSelectedFiltersEmpty) {
showToast(t('error.chooseFiltersFirst'), 'error')

return
}

presetStore.createPreset(createPresetName)
}

if (filterStore.actionName === ActionFilterEnum.Modify) {
if (!datasetStore.activePreset) {
showToast(t('error.choosePresetFirst'), 'error')

return
}

const isConditionsAbleToModify = compareConditions({
currentConditions: datasetStore.conditions,
startConditions: datasetStore.startPresetConditions,
currentPreset: datasetStore.activePreset,
prevPreset: datasetStore.prevPreset,
})

if (!isConditionsAbleToModify) {
showToast(t('error.noChangesToModify'), 'error')

return
}

presetStore.modifyPreset(datasetStore.activePreset)
}
}
}

export default new FilterControlRefinerStore()
Loading

0 comments on commit 8ca7e89

Please sign in to comment.