Skip to content

Commit e6343fd

Browse files
authored
Fixed reload issue in select-options (#3320)
* fixed reload issue in select-options * Automatic frontend build * Automatic frontend build --------- Co-authored-by: Corepex <16717695+Corepex@users.noreply.github.com>
1 parent ceea1a2 commit e6343fd

File tree

749 files changed

+30026
-13
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

749 files changed

+30026
-13
lines changed

assets/js/src/core/modules/select-option/components/detail/select-option-form.tsx

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,9 +83,14 @@ export const SelectOptionForm = ({ selectOption }: SelectOptionFormProps): React
8383
<IconButton
8484
disabled={ isLoading }
8585
icon={ { value: 'refresh' } }
86-
onClick={ () => {
87-
form.resetFields()
88-
form.setFieldsValue(initialValues)
86+
onClick={ async () => {
87+
const fresh = await getSelectOptionById(selectOption.id)
88+
if (fresh !== undefined) {
89+
setSelectOptions((prev) =>
90+
prev.map((s) => s.id === fresh.id ? fresh : s)
91+
)
92+
form.setFieldsValue(fresh)
93+
}
8994
} }
9095
title={ t('refresh') }
9196
/>

assets/js/src/core/modules/select-option/components/tree/tree-container.tsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ interface ITreeContainerProps {
2323
treeData: TreeDataItem[]
2424
expandedKeys: React.Key[]
2525
isFetching: boolean
26-
onReloadTree: () => Promise<void>
26+
onReloadTree: () => void
2727
onSetExpandedKeys: (keys: React.Key[]) => void
2828
}
2929

@@ -34,8 +34,8 @@ const TreeContainer = ({ expandedKeys, treeData, isFetching, onReloadTree, onSet
3434
const classNames = [styles.treeContainer]
3535

3636
const handleAddItem = (): void => {
37-
createSelectOption(async () => {
38-
await onReloadTree()
37+
createSelectOption(() => {
38+
onReloadTree()
3939
})
4040
}
4141

@@ -44,7 +44,7 @@ const TreeContainer = ({ expandedKeys, treeData, isFetching, onReloadTree, onSet
4444
renderToolbar={
4545
<ToolbarTree
4646
onAddItem={ handleAddItem }
47-
onReload={ () => { void onReloadTree() } }
47+
onReload={ onReloadTree }
4848
/>
4949
}
5050
>
@@ -66,7 +66,7 @@ const TreeContainer = ({ expandedKeys, treeData, isFetching, onReloadTree, onSet
6666
removeWithConfirmation(keyStr, async () => {
6767
closeSelectOption(keyStr)
6868
setSelectOptions((prev) => prev.filter((s) => s.id !== keyStr))
69-
await onReloadTree()
69+
onReloadTree()
7070
})
7171
}
7272
} }

assets/js/src/core/modules/select-option/select-option-widget.tsx

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,10 @@
1111
import { ConfigLayout } from '@Pimcore/components/predefined-layouts/config/config-layout'
1212
import { Icon } from '@Pimcore/components/icon/icon'
1313
import type { TreeDataItem } from '@Pimcore/components/tree-element/tree-element'
14-
import { useClassSelectOptionGetTreeQuery } from '@Pimcore/modules/class-definition/class-definition-slice-enhanced'
14+
import { api, useClassSelectOptionGetTreeQuery } from '@Pimcore/modules/class-definition/class-definition-slice-enhanced'
1515
import type { SelectOptionTreeItem, SelectOptionTreeFolder } from '@Pimcore/modules/class-definition/class-definition-slice.gen'
16+
import { invalidatingTags } from '@Pimcore/app/api/pimcore/tags'
17+
import { useAppDispatch } from '@Pimcore/app/store'
1618
import React, { useCallback, useEffect, useState } from 'react'
1719
import { SelectOptionEditorProvider } from './context/select-option-editor-provider'
1820
import { SelectOptionDetailContainer } from './components/detail/select-option-detail-container'
@@ -69,7 +71,8 @@ const createNodesByResponse = (items: TreeApiItem[]): TreeDataItem[] => {
6971
}
7072

7173
const SelectOptionWidgetInner = (): React.JSX.Element => {
72-
const { data, isFetching, refetch } = useClassSelectOptionGetTreeQuery({ withGroup: true })
74+
const { data, isFetching } = useClassSelectOptionGetTreeQuery({ withGroup: true })
75+
const dispatch = useAppDispatch()
7376
const [treeData, setTreeData] = useState<TreeDataItem[]>([])
7477
const [expandedKeys, setExpandedKeys] = useState<React.Key[]>([])
7578

@@ -79,9 +82,9 @@ const SelectOptionWidgetInner = (): React.JSX.Element => {
7982
}
8083
}, [data])
8184

82-
const handleReloadTree = useCallback(async (): Promise<void> => {
83-
await refetch()
84-
}, [refetch])
85+
const handleReloadTree = useCallback((): void => {
86+
dispatch(api.util.invalidateTags(invalidatingTags.SELECT_OPTION_COLLECTION()))
87+
}, [dispatch])
8588

8689
const sidebar = {
8790
id: 'select-option-editor.sidebar',

public/build/248f2fe2-8d88-49d0-b296-15a61b521c0b/entrypoints.json

Lines changed: 23 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

public/build/248f2fe2-8d88-49d0-b296-15a61b521c0b/exposeRemote.js

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

public/build/248f2fe2-8d88-49d0-b296-15a61b521c0b/index.html

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)