diff --git a/packages/client/src/components/image-uploader/index.module.scss b/packages/client/src/components/image-uploader/index.module.scss index 67a83b09..c25e2fb2 100644 --- a/packages/client/src/components/image-uploader/index.module.scss +++ b/packages/client/src/components/image-uploader/index.module.scss @@ -1,9 +1,17 @@ .imgItem { + position: relative; width: 100%; height: 60px; cursor: pointer; - border-radius: 0.25rem; - object-fit: cover; + + img { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + border-radius: 0.25rem; + } } .uploadWrap { @@ -15,6 +23,5 @@ max-height: 200px; margin: 12px auto; border-radius: 0.25rem; - object-fit: cover; } } diff --git a/packages/client/src/components/image-uploader/index.tsx b/packages/client/src/components/image-uploader/index.tsx index 419dc1da..126cb8b7 100644 --- a/packages/client/src/components/image-uploader/index.tsx +++ b/packages/client/src/components/image-uploader/index.tsx @@ -1,5 +1,6 @@ import { Button, ButtonGroup, Col, Popover, Row, SideSheet, Skeleton, Space, TabPane, Tabs } from '@douyinfe/semi-ui'; import { Upload } from 'components/upload'; +import { chunk } from 'helpers/chunk'; import { IsOnMobile } from 'hooks/use-on-mobile'; import { useToggle } from 'hooks/use-toggle'; import React, { useCallback, useMemo, useState } from 'react'; @@ -71,26 +72,26 @@ export const ImageUploader: React.FC = ({ images, selectImage, children images.map((image) => { return ( - - {image.images.map((url) => { - return ( - - } - /> - } - onClick={setImage(url)} - /> - - ); - })} - + {chunk(image.images, 4).map((chunk, index) => { + return ( + + {chunk.map((url) => { + return ( + +
+ } />} + onClick={setImage(url)} + /> +
+ + ); + })} +
+ ); + })}
); }), diff --git a/packages/client/src/helpers/chunk.ts b/packages/client/src/helpers/chunk.ts new file mode 100644 index 00000000..0a00525b --- /dev/null +++ b/packages/client/src/helpers/chunk.ts @@ -0,0 +1,10 @@ +export function chunk(arr: Array, size = 1) { + const res: Array = []; + + for (let i = 0; i < arr.length; i += size) { + const slice = arr.slice(i, i + size); + res.push(slice); + } + + return res; +}