mirror of
https://github.com/strapi/strapi.git
synced 2025-12-28 15:44:59 +00:00
init search in ML CM
This commit is contained in:
parent
6d23a0e2da
commit
b40aa45cf5
@ -4,6 +4,7 @@ import { useIntl } from 'react-intl';
|
||||
import { Flex } from '@strapi/design-system/Flex';
|
||||
import { Stack } from '@strapi/design-system/Stack';
|
||||
import { BaseCheckbox } from '@strapi/design-system/BaseCheckbox';
|
||||
import { Searchbar, SearchForm } from '@strapi/design-system/Searchbar';
|
||||
import { AssetList } from '../../../AssetList';
|
||||
import getTrad from '../../../../utils/getTrad';
|
||||
import PaginationFooter from './PaginationFooter';
|
||||
@ -14,10 +15,12 @@ export const BrowseStep = ({
|
||||
assets,
|
||||
onChangePage,
|
||||
onChangePageSize,
|
||||
onChangeSearch,
|
||||
onChangeSort,
|
||||
onEditAsset,
|
||||
onSelectAllAsset,
|
||||
onSelectAsset,
|
||||
onSubmitSearch,
|
||||
pagination,
|
||||
queryObject,
|
||||
selectedAssets,
|
||||
@ -28,26 +31,39 @@ export const BrowseStep = ({
|
||||
<>
|
||||
<Stack size={4}>
|
||||
{onSelectAllAsset && (
|
||||
<Stack horizontal size={2}>
|
||||
<Flex
|
||||
paddingLeft={2}
|
||||
paddingRight={2}
|
||||
background="neutral0"
|
||||
hasRadius
|
||||
borderColor="neutral200"
|
||||
height={`${32 / 16}rem`}
|
||||
>
|
||||
<BaseCheckbox
|
||||
aria-label={formatMessage({
|
||||
id: getTrad('bulk.select.label'),
|
||||
defaultMessage: 'Select all assets',
|
||||
})}
|
||||
value={assets?.length > 0 && selectedAssets.length === assets?.length}
|
||||
onChange={onSelectAllAsset}
|
||||
/>
|
||||
</Flex>
|
||||
<SortPicker onChangeSort={onChangeSort} />
|
||||
</Stack>
|
||||
<Flex justifyContent="space-between">
|
||||
<Stack horizontal size={2}>
|
||||
<Flex
|
||||
paddingLeft={2}
|
||||
paddingRight={2}
|
||||
background="neutral0"
|
||||
hasRadius
|
||||
borderColor="neutral200"
|
||||
height={`${32 / 16}rem`}
|
||||
>
|
||||
<BaseCheckbox
|
||||
aria-label={formatMessage({
|
||||
id: getTrad('bulk.select.label'),
|
||||
defaultMessage: 'Select all assets',
|
||||
})}
|
||||
value={assets?.length > 0 && selectedAssets.length === assets?.length}
|
||||
onChange={onSelectAllAsset}
|
||||
/>
|
||||
</Flex>
|
||||
<SortPicker onChangeSort={onChangeSort} />
|
||||
</Stack>
|
||||
<SearchForm onSubmit={onSubmitSearch}>
|
||||
<Searchbar
|
||||
name="searchbar"
|
||||
onClear={() => {}}
|
||||
onChange={onChangeSearch}
|
||||
clearLabel="Clearing the asset search"
|
||||
size="S"
|
||||
>
|
||||
Searching for an asset
|
||||
</Searchbar>
|
||||
</SearchForm>
|
||||
</Flex>
|
||||
)}
|
||||
|
||||
<AssetList
|
||||
@ -71,7 +87,9 @@ export const BrowseStep = ({
|
||||
};
|
||||
|
||||
BrowseStep.defaultProps = {
|
||||
onChangeSearch: undefined,
|
||||
onSelectAllAsset: undefined,
|
||||
onSubmitSearch: undefined,
|
||||
};
|
||||
|
||||
BrowseStep.propTypes = {
|
||||
@ -79,9 +97,11 @@ BrowseStep.propTypes = {
|
||||
onChangePage: PropTypes.func.isRequired,
|
||||
onChangePageSize: PropTypes.func.isRequired,
|
||||
onChangeSort: PropTypes.func.isRequired,
|
||||
onChangeSearch: PropTypes.func,
|
||||
onEditAsset: PropTypes.func.isRequired,
|
||||
onSelectAsset: PropTypes.func.isRequired,
|
||||
onSelectAllAsset: PropTypes.func,
|
||||
onSubmitSearch: PropTypes.func,
|
||||
queryObject: PropTypes.shape({
|
||||
page: PropTypes.number.isRequired,
|
||||
pageSize: PropTypes.number.isRequired,
|
||||
|
||||
@ -31,7 +31,7 @@ export const AssetDialog = ({
|
||||
const { canRead, canCreate, isLoading: isLoadingPermissions } = useMediaLibraryPermissions();
|
||||
const [
|
||||
{ rawQuery, queryObject },
|
||||
{ onChangePage, onChangePageSize, onChangeSort },
|
||||
{ onChangePage, onChangePageSize, onChangeSort, onChangeSearch, onSubmitSearch },
|
||||
] = useModalQueryParams();
|
||||
const { data, isLoading, error } = useModalAssets({ skipWhen: !canRead, rawQuery });
|
||||
|
||||
@ -166,6 +166,8 @@ export const AssetDialog = ({
|
||||
onChangePage={onChangePage}
|
||||
onChangePageSize={onChangePageSize}
|
||||
onChangeSort={onChangeSort}
|
||||
onChangeSearch={onChangeSearch}
|
||||
onSubmitSearch={onSubmitSearch}
|
||||
/>
|
||||
</ModalBody>
|
||||
</TabPanel>
|
||||
|
||||
@ -145,16 +145,16 @@ export const MediaLibraryInput = ({
|
||||
selectedAssetIndex={selectedIndex}
|
||||
/>
|
||||
|
||||
{step === Steps.SelectAsset && (
|
||||
<AssetDialog
|
||||
initiallySelectedAssets={initiallySelectedAssets}
|
||||
onClose={() => setStep(undefined)}
|
||||
onValidate={handleValidation}
|
||||
multiple={multiple}
|
||||
onAddAsset={() => setStep(Steps.UploadAsset)}
|
||||
uploadedFiles={uploadedFiles}
|
||||
/>
|
||||
)}
|
||||
{/* {step === Steps.SelectAsset && ( */}
|
||||
<AssetDialog
|
||||
initiallySelectedAssets={initiallySelectedAssets}
|
||||
onClose={() => setStep(undefined)}
|
||||
onValidate={handleValidation}
|
||||
multiple={multiple}
|
||||
onAddAsset={() => setStep(Steps.UploadAsset)}
|
||||
uploadedFiles={uploadedFiles}
|
||||
/>
|
||||
{/* )} */}
|
||||
|
||||
{step === Steps.UploadAsset && (
|
||||
<UploadAssetDialog
|
||||
|
||||
@ -21,12 +21,25 @@ const useModalQueryParams = () => {
|
||||
setQueryObject(prev => ({ ...prev, sort }));
|
||||
};
|
||||
|
||||
const handleChangeSearch = () => {
|
||||
console.log('change search');
|
||||
};
|
||||
|
||||
const handleSubmitSearch = e => {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
|
||||
console.log('submit search');
|
||||
};
|
||||
|
||||
return [
|
||||
{ queryObject, rawQuery: stringify(queryObject, { encode: false }) },
|
||||
{
|
||||
onChangePage: handeChangePage,
|
||||
onChangePageSize: handleChangePageSize,
|
||||
onChangeSort: handleChangeSort,
|
||||
onChangeSearch: handleChangeSearch,
|
||||
onSubmitSearch: handleSubmitSearch,
|
||||
},
|
||||
];
|
||||
};
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user