diff --git a/ghost/admin-x-settings/src/admin-x-ds/global/FileUpload.stories.tsx b/ghost/admin-x-settings/src/admin-x-ds/global/FileUpload.stories.tsx index 3a1b4d61fe..15b4fe2501 100644 --- a/ghost/admin-x-settings/src/admin-x-ds/global/FileUpload.stories.tsx +++ b/ghost/admin-x-settings/src/admin-x-ds/global/FileUpload.stories.tsx @@ -12,6 +12,16 @@ export default meta; type Story = StoryObj; export const Default: Story = { + args: { + id: 'test-file', + onUpload: (file: File) => { + alert(`You're uploading: ${file.name}`); + }, + children: 'Click here to upload' + } +}; + +export const Custom: Story = { args: { id: 'test-file', onUpload: (file: File) => { diff --git a/ghost/admin-x-settings/src/admin-x-ds/global/FileUpload.tsx b/ghost/admin-x-settings/src/admin-x-ds/global/FileUpload.tsx index dd683421be..692d1fed35 100644 --- a/ghost/admin-x-settings/src/admin-x-ds/global/FileUpload.tsx +++ b/ghost/admin-x-settings/src/admin-x-ds/global/FileUpload.tsx @@ -4,9 +4,11 @@ export interface FileUploadProps { id: string; /** - * Can be any component that has no default onClick eventh handline. E.g. buttons and links won't work + * Can be string or any component that has no default onClick eventh handline. + * E.g. buttons and links won't work. If it's text then it's styled as the + * default button. */ - children?: React.ReactNode; + children?: string | React.ReactNode; className?: string; onUpload: (file: File) => void; style?: {} @@ -23,7 +25,12 @@ const FileUpload: React.FC = ({id, onUpload, children, style, . return ( ); }; diff --git a/ghost/admin-x-settings/src/components/settings/site/ThemeModal.tsx b/ghost/admin-x-settings/src/components/settings/site/ThemeModal.tsx index 26be9e2bcf..a9caed10e0 100644 --- a/ghost/admin-x-settings/src/components/settings/site/ThemeModal.tsx +++ b/ghost/admin-x-settings/src/components/settings/site/ThemeModal.tsx @@ -1,6 +1,7 @@ import AdvancedThemeSettings from './theme/AdvancedThemeSettings'; import Button from '../../../admin-x-ds/global/Button'; import ButtonGroup from '../../../admin-x-ds/global/ButtonGroup'; +import FileUpload from '../../../admin-x-ds/global/FileUpload'; import Modal from '../../../admin-x-ds/global/Modal'; import NewThemePreview from './theme/ThemePreview'; import NiceModal, {useModal} from '@ebay/nice-modal-react'; @@ -80,16 +81,18 @@ const ChangeThemeModal = NiceModal.create(() => { Installed - { - alert('Upload'); - }}, - {label: 'OK', color: 'black', className: 'min-w-[75px]', onClick: () => { +
+ { + alert(file.name); + }}>Upload theme +
; }