feat: button custom function prop
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
import type { Meta, StoryObj } from '@storybook/react';
|
import type { Meta, StoryObj } from '@storybook/react';
|
||||||
import SwitchButton from '@views/components/common/SwitchButton';
|
import SwitchButton from 'src/views/components/common/SwitchButton';
|
||||||
|
|
||||||
const meta = {
|
const meta = {
|
||||||
title: 'Components/Common/SwitchButton',
|
title: 'Components/Common/SwitchButton',
|
||||||
|
|||||||
@@ -3,20 +3,27 @@ import React, { useEffect,useState } from 'react';
|
|||||||
|
|
||||||
type ToggleSwitchProps = {
|
type ToggleSwitchProps = {
|
||||||
isChecked?: boolean;
|
isChecked?: boolean;
|
||||||
// onChange?: (checked: boolean) => void;
|
onChange?: (checked: boolean) => void;
|
||||||
};
|
};
|
||||||
|
|
||||||
const SwitchButton: React.FC<ToggleSwitchProps> = ({ isChecked = true }) => {
|
const SwitchButton: React.FC<ToggleSwitchProps> = ({ isChecked = true, onChange }) => {
|
||||||
const [enabled, setEnabled] = useState(isChecked);
|
const [enabled, setEnabled] = useState(isChecked);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setEnabled(isChecked);
|
setEnabled(isChecked);
|
||||||
}, [isChecked]);
|
}, [isChecked]);
|
||||||
|
|
||||||
|
const handleChange = (checked: boolean) => {
|
||||||
|
setEnabled(checked);
|
||||||
|
if (onChange) {
|
||||||
|
onChange;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Switch
|
<Switch
|
||||||
checked={enabled}
|
checked={enabled}
|
||||||
onChange={setEnabled}
|
onChange={handleChange}
|
||||||
className={`${enabled ? 'bg-[#579D42]' : 'bg-gray-400'}
|
className={`${enabled ? 'bg-[#579D42]' : 'bg-gray-400'}
|
||||||
relative inline-flex items-center h-8 w-13 rounded-full transition-colors ease-in-out duration-200`}
|
relative inline-flex items-center h-8 w-13 rounded-full transition-colors ease-in-out duration-200`}
|
||||||
>
|
>
|
||||||
|
|||||||
Reference in New Issue
Block a user