UNPKG

@craftercms/studio-ui

Version:

Services, components, models & utils to build CrafterCMS authoring extensions.

66 lines (64 loc) 2.5 kB
/* * Copyright (C) 2007-2022 Crafter Software Corporation. All Rights Reserved. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License version 3 as published by * the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ import { Site } from '../../models/Site'; import React from 'react'; import StandardAction from '../../models/StandardAction'; import { EnhancedDialogProps } from '../EnhancedDialog'; import { EnhancedDialogState } from '../../hooks/useEnhancedDialogState'; export type Source = { site: Site; error: Error; }; export type Return = Omit<Source, 'error'>; export interface EditSiteDialogUIProps { siteId: string; siteName: string; siteDescription: string; siteImage: string; submitting: boolean; submitDisabled: boolean; onKeyPress: (e: React.KeyboardEvent) => void; fallbackImageSrc: string; onSiteNameChange(event: React.ChangeEvent): void; onSiteDescriptionChange(value: string): void; onSubmit(): void; onCloseButtonClick?(e: React.MouseEvent<HTMLButtonElement, MouseEvent>): void; onEditSiteImage?(): void; } export interface EditSiteDialogBaseProps { site: Site; } export interface EditSiteDialogProps extends EditSiteDialogBaseProps, EnhancedDialogProps { onSaveSuccess?(response?: any): any; onSiteImageChange?(): void; } export interface EditSiteDialogStateProps extends EditSiteDialogBaseProps, EnhancedDialogState { onSaveSuccess?: StandardAction; onSiteImageChange?: StandardAction; onClose?: StandardAction; onClosed?: StandardAction; } export interface EditSiteDialogContainerProps extends EditSiteDialogBaseProps, Pick<EditSiteDialogProps, 'isSubmitting' | 'onSaveSuccess' | 'onSiteImageChange' | 'onClose'> {} export interface EditSiteDialogUIContainerProps { site: Site; submitting: boolean; submitDisabled: boolean; checkSiteName(event: React.ChangeEvent, currentSiteName: string): void; onSubmit(id: string, name: string, description: string): void; onCloseButtonClick?(e: React.MouseEvent<HTMLButtonElement, MouseEvent>): void; }