File size: 1,297 Bytes
8a37e0a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import { IconButton } from '@invoke-ai/ui-library';
import { useAppSelector } from 'app/store/storeHooks';
import { useImageUploadButton } from 'common/hooks/useImageUploadButton';
import { selectMaxImageUploadCount } from 'features/system/store/configSlice';
import { t } from 'i18next';
import { useMemo } from 'react';
import { PiUploadBold } from 'react-icons/pi';

export const GalleryUploadButton = () => {
  const maxImageUploadCount = useAppSelector(selectMaxImageUploadCount);
  const uploadOptions = useMemo(() => ({ allowMultiple: maxImageUploadCount !== 1 }), [maxImageUploadCount]);
  const uploadApi = useImageUploadButton(uploadOptions);
  return (
    <>
      <IconButton
        size="sm"
        alignSelf="stretch"
        variant="link"
        aria-label={
          maxImageUploadCount === undefined || maxImageUploadCount > 1
            ? t('accessibility.uploadImages')
            : t('accessibility.uploadImage')
        }
        tooltip={
          maxImageUploadCount === undefined || maxImageUploadCount > 1
            ? t('accessibility.uploadImages')
            : t('accessibility.uploadImage')
        }
        icon={<PiUploadBold />}
        {...uploadApi.getUploadButtonProps()}
      />
      <input {...uploadApi.getUploadInputProps()} />
    </>
  );
};