Enhance FileUpload, ObjectProperty, and ObjectSelect components by adding masterFilter prop for improved file filtering capabilities. Refactor FileList component styles for better layout consistency. Update ObjectSelect to accept custom styles, enhancing flexibility in usage.
This commit is contained in:
parent
c201d26744
commit
70456d945d
@ -67,14 +67,22 @@ const FileList = ({
|
|||||||
<Flex
|
<Flex
|
||||||
vertical
|
vertical
|
||||||
gap='10px'
|
gap='10px'
|
||||||
style={{ maxWidth: '100%', minWidth: 0, width: card ? '100%' : 'fit-content' }}
|
style={{
|
||||||
|
maxWidth: '100%',
|
||||||
|
minWidth: 0,
|
||||||
|
width: card ? '100%' : 'fit-content'
|
||||||
|
}}
|
||||||
>
|
>
|
||||||
<Flex
|
<Flex
|
||||||
justify={card ? 'space-between' : 'start'}
|
justify={card ? 'space-between' : 'start'}
|
||||||
align='center'
|
align='center'
|
||||||
gap='small'
|
gap='small'
|
||||||
wrap={false}
|
wrap={false}
|
||||||
style={{ maxWidth: '100%', minWidth: 0, width: card ? '100%' : 'fit-content' }}
|
style={{
|
||||||
|
maxWidth: '100%',
|
||||||
|
minWidth: 0,
|
||||||
|
width: card ? '100%' : 'fit-content'
|
||||||
|
}}
|
||||||
>
|
>
|
||||||
<Flex
|
<Flex
|
||||||
gap={'small'}
|
gap={'small'}
|
||||||
|
|||||||
@ -35,7 +35,8 @@ const FileUpload = ({
|
|||||||
multiple = true,
|
multiple = true,
|
||||||
defaultPreviewOpen = false,
|
defaultPreviewOpen = false,
|
||||||
showPreview = true,
|
showPreview = true,
|
||||||
showInfo
|
showInfo,
|
||||||
|
masterFilter = []
|
||||||
}) => {
|
}) => {
|
||||||
const { uploadFile } = useContext(ApiServerContext)
|
const { uploadFile } = useContext(ApiServerContext)
|
||||||
const [uploading, setUploading] = useState(false)
|
const [uploading, setUploading] = useState(false)
|
||||||
@ -138,11 +139,17 @@ const FileUpload = ({
|
|||||||
<Flex gap={'small'} vertical>
|
<Flex gap={'small'} vertical>
|
||||||
{hasNoItems && uploading == false ? (
|
{hasNoItems && uploading == false ? (
|
||||||
<Flex gap={'small'} align='center' wrap>
|
<Flex gap={'small'} align='center' wrap>
|
||||||
<Space.Compact style={{ flexGrow: 1 }}>
|
<Space.Compact style={{ flexGrow: 1, minWidth: 0 }}>
|
||||||
<ObjectSelect
|
<ObjectSelect
|
||||||
type={'file'}
|
type={'file'}
|
||||||
value={selectedFile}
|
value={selectedFile}
|
||||||
onChange={setSelectedFile}
|
onChange={setSelectedFile}
|
||||||
|
style={{ width: '100%', minWidth: 0 }}
|
||||||
|
masterFilter={
|
||||||
|
masterFilter.length > 0
|
||||||
|
? { extension: { $in: masterFilter } }
|
||||||
|
: {}
|
||||||
|
}
|
||||||
/>
|
/>
|
||||||
<Button
|
<Button
|
||||||
icon={<PlusIcon />}
|
icon={<PlusIcon />}
|
||||||
@ -157,6 +164,9 @@ const FileUpload = ({
|
|||||||
beforeUpload={handleFileUpload}
|
beforeUpload={handleFileUpload}
|
||||||
showUploadList={false}
|
showUploadList={false}
|
||||||
multiple={multiple}
|
multiple={multiple}
|
||||||
|
accept={
|
||||||
|
masterFilter.length > 0 ? masterFilter.join(',') : undefined
|
||||||
|
}
|
||||||
>
|
>
|
||||||
<Button style={{ width: '100%' }} icon={<UploadIcon />}>
|
<Button style={{ width: '100%' }} icon={<UploadIcon />}>
|
||||||
Upload
|
Upload
|
||||||
@ -209,7 +219,8 @@ FileUpload.propTypes = {
|
|||||||
showPreview: PropTypes.bool,
|
showPreview: PropTypes.bool,
|
||||||
showInfo: PropTypes.bool,
|
showInfo: PropTypes.bool,
|
||||||
defaultPreviewOpen: PropTypes.bool,
|
defaultPreviewOpen: PropTypes.bool,
|
||||||
minimal: PropTypes.bool
|
minimal: PropTypes.bool,
|
||||||
|
masterFilter: PropTypes.array
|
||||||
}
|
}
|
||||||
|
|
||||||
export default FileUpload
|
export default FileUpload
|
||||||
|
|||||||
@ -621,6 +621,7 @@ const ObjectProperty = ({
|
|||||||
showPreview={showPreview}
|
showPreview={showPreview}
|
||||||
showInfo={showHyperlink}
|
showInfo={showHyperlink}
|
||||||
showDownload={showDownload}
|
showDownload={showDownload}
|
||||||
|
masterFilter={masterFilter}
|
||||||
/>
|
/>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@ -635,6 +636,7 @@ const ObjectProperty = ({
|
|||||||
defaultPreviewOpen={previewOpen}
|
defaultPreviewOpen={previewOpen}
|
||||||
showPreview={showPreview}
|
showPreview={showPreview}
|
||||||
showInfo={showHyperlink}
|
showInfo={showHyperlink}
|
||||||
|
masterFilter={masterFilter}
|
||||||
/>
|
/>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@ -947,6 +949,7 @@ const ObjectProperty = ({
|
|||||||
defaultPreviewOpen={previewOpen}
|
defaultPreviewOpen={previewOpen}
|
||||||
showPreview={showPreview}
|
showPreview={showPreview}
|
||||||
showInfo={showHyperlink}
|
showInfo={showHyperlink}
|
||||||
|
masterFilter={masterFilter}
|
||||||
{...inputProps}
|
{...inputProps}
|
||||||
/>
|
/>
|
||||||
)
|
)
|
||||||
@ -958,6 +961,7 @@ const ObjectProperty = ({
|
|||||||
defaultPreviewOpen={previewOpen}
|
defaultPreviewOpen={previewOpen}
|
||||||
showPreview={showPreview}
|
showPreview={showPreview}
|
||||||
showInfo={showHyperlink}
|
showInfo={showHyperlink}
|
||||||
|
masterFilter={masterFilter}
|
||||||
{...inputProps}
|
{...inputProps}
|
||||||
/>
|
/>
|
||||||
)
|
)
|
||||||
|
|||||||
@ -46,6 +46,7 @@ const ObjectSelect = ({
|
|||||||
value,
|
value,
|
||||||
onChange,
|
onChange,
|
||||||
disabled = false,
|
disabled = false,
|
||||||
|
style = {},
|
||||||
...rest
|
...rest
|
||||||
}) => {
|
}) => {
|
||||||
const { fetchObjectsByProperty, fetchObject, connected, searchObjects } =
|
const { fetchObjectsByProperty, fetchObject, connected, searchObjects } =
|
||||||
@ -719,7 +720,7 @@ const ObjectSelect = ({
|
|||||||
|
|
||||||
// --- Main TreeSelect UI ---
|
// --- Main TreeSelect UI ---
|
||||||
return (
|
return (
|
||||||
<div>
|
<div style={style}>
|
||||||
<TreeSelect
|
<TreeSelect
|
||||||
key={treeVersion}
|
key={treeVersion}
|
||||||
treeDataSimpleMode={false}
|
treeDataSimpleMode={false}
|
||||||
@ -773,7 +774,8 @@ ObjectSelect.propTypes = {
|
|||||||
multiple: PropTypes.bool,
|
multiple: PropTypes.bool,
|
||||||
treeSelectProps: PropTypes.object,
|
treeSelectProps: PropTypes.object,
|
||||||
type: PropTypes.string.isRequired,
|
type: PropTypes.string.isRequired,
|
||||||
disabled: PropTypes.bool
|
disabled: PropTypes.bool,
|
||||||
|
style: PropTypes.object
|
||||||
}
|
}
|
||||||
|
|
||||||
export default ObjectSelect
|
export default ObjectSelect
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user