HEX
Server: Apache
System: Linux efa57bbe-abb1-400d-2985-3b056fbc2701.secureserver.net 6.1.147-1.el9.elrepo.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Jul 24 12:33:32 EDT 2025 x86_64
User: root (0)
PHP: 8.0.30.4
Disabled: NONE
Upload Files
File: /var/www/wp-content/mu-plugins/vendor/godaddy-wordpress/styles/.storybook/stories/modal.stories.js
/**
 * WordPress dependencies
 */
import { useState } from '@wordpress/element';
import { wordpress } from '@wordpress/icons';
import {
	Button,
	Icon,
	Modal,
} from '@wordpress/components';

export default {
	title: 'Components/Modal',
	component: Modal,
	argTypes: {
		title: { control: 'text', defaultValue: 'Modal Title' },
		showIcon: { control: 'boolean', defaultValue: false },
	},
};

export const _default = ( props ) => {
	return <ModalExample className="godaddy-styles" { ...props } />;
};

const ModalExample = ( props ) => {
	const [ isOpen, setOpen ] = useState( true );
	const openModal = () => setOpen( true );
	const closeModal = () => setOpen( false );

	return (
		<>
			<Button className="godaddy-styles" variant="secondary" onClick={ openModal }>
				Open Modal
			</Button>
			{ isOpen && (
				<Modal onRequestClose={ closeModal }
					icon={ props.showIcon ? <Icon icon={ wordpress } /> : null }
					{ ...props }
				>
					<Button className="godaddy-styles" variant="primary" onClick={ closeModal }>
						Primary
					</Button>
					<Button className="godaddy-styles" variant="secondary" onClick={ closeModal }>
						Secondary
					</Button>
				</Modal>
			) }
		</>
	);
};