Skip to content

Commit c8e5102

Browse files
committed
fix: 头像最大尺寸设定为256
1 parent 163f79e commit c8e5102

File tree

3 files changed

+18
-2
lines changed

3 files changed

+18
-2
lines changed

client/web/src/components/ImagePicker.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ interface ImagePickerProps extends PropsWithChildren {
1010
className?: string;
1111
imageUrl?: string; // 初始image url, 仅children为空时生效
1212
aspect?: number;
13+
maxSize?: number;
1314
onChange?: (blobUrl: string) => void;
1415
disabled?: boolean; // 禁用选择
1516
}
@@ -43,6 +44,7 @@ export const ImagePicker: React.FC<ImagePickerProps> = React.memo((props) => {
4344
<ImageCropperModal
4445
imageUrl={reader.result.toString()}
4546
aspect={props.aspect}
47+
maxSize={props.maxSize}
4648
onConfirm={(croppedImageBlobUrl) => {
4749
closeModal(key);
4850
updateAvatar(croppedImageBlobUrl);

client/web/src/components/ImageUploader.tsx

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import { ImagePicker } from './ImagePicker';
77
interface ImageUploaderProps extends PropsWithChildren {
88
circle?: boolean;
99
aspect?: number;
10+
maxSize?: number;
1011
className?: string;
1112
onUploadSuccess: (fileInfo: UploadFileResult) => void;
1213
}
@@ -39,6 +40,7 @@ export const ImageUploader: React.FC<ImageUploaderProps> = React.memo(
3940
'rounded-full': props.circle,
4041
})}
4142
aspect={aspect}
43+
maxSize={props.maxSize}
4244
disabled={loading}
4345
onChange={handlePickImage}
4446
>
@@ -58,7 +60,14 @@ ImageUploader.displayName = 'ImageUploader';
5860

5961
export const AvatarUploader: React.FC<ImageUploaderProps> = React.memo(
6062
(props) => {
61-
return <ImageUploader aspect={1} circle={true} {...props}></ImageUploader>;
63+
return (
64+
<ImageUploader
65+
aspect={1}
66+
maxSize={256}
67+
circle={true}
68+
{...props}
69+
></ImageUploader>
70+
);
6271
}
6372
);
6473
AvatarUploader.displayName = 'AvatarUploader';

client/web/src/components/modals/ImageCropper.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,17 +11,22 @@ import { ModalWrapper } from '../Modal';
1111
export const ImageCropperModal: React.FC<{
1212
imageUrl: string;
1313
aspect?: number;
14+
maxSize?: number;
1415
onConfirm: (croppedImageBlobUrl: string) => void;
1516
}> = React.memo((props) => {
1617
const aspect = props.aspect ?? 1;
18+
const maxSize = props.maxSize ?? Infinity;
1719
const [crop, setCrop] = useState({ x: 0, y: 0 });
1820
const [zoom, setZoom] = useState(1);
1921
const [area, setArea] = useState<Area>({ width: 0, height: 0, x: 0, y: 0 });
2022

2123
const handleConfirm = async () => {
2224
const blobUrl = await getCroppedImg(
2325
await createImage(props.imageUrl),
24-
area
26+
area,
27+
0,
28+
'newFile.jpeg',
29+
maxSize
2530
);
2631
props.onConfirm(blobUrl);
2732
};

0 commit comments

Comments
 (0)