// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.

import type { JSXElement } from "@coreai-ds/react-components";
import * as React from 'react';
import { makeStyles } from "@coreai-ds/react-components";
import { ToggleButton } from "@coreai-ds/react-components";
import { bundleIcon } from "@fluentui/react-icons";
import { CalendarMonthFilled } from "@fluentui/react-icons";
import { CalendarMonthRegular } from "@fluentui/react-icons";
import { Tooltip } from "@coreai-ds/react-components";

const useStyles = makeStyles({
    wrapper: {
        columnGap: '15px',
        display: 'flex',
        minWidth: 'min-content',
    },
});

const CalendarMonth = bundleIcon(CalendarMonthFilled, CalendarMonthRegular);

export const Icon = (): JSXElement => {
    const [checked1, setChecked1] = React.useState(false);
    const [checked2, setChecked2] = React.useState(false);
    const [checked3, setChecked3] = React.useState(false);
    const styles = useStyles();
    const toggleChecked = React.useCallback((buttonIndex: number) => {
        switch (buttonIndex) {
            case 1:
                setChecked1(!checked1);
                break;
            case 2:
                setChecked2(!checked2);
                break;
            case 3:
                setChecked3(!checked3);
                break;
        }
    }, [checked1, checked2, checked3]);
    return (<div className={styles.wrapper}>
      <ToggleButton checked={checked1} icon={checked1 ? <CalendarMonth /> : <CalendarMonthRegular />} onClick={() => toggleChecked(1)}>
        With calendar icon before contents
      </ToggleButton>
      <ToggleButton checked={checked2} icon={checked2 ? <CalendarMonth /> : <CalendarMonthRegular />} iconPosition="after" onClick={() => toggleChecked(2)}>
        With calendar icon after contents
      </ToggleButton>
      <Tooltip content="With calendar icon only" relationship="label">
        <ToggleButton checked={checked3} icon={checked3 ? <CalendarMonth /> : <CalendarMonthRegular />} onClick={() => toggleChecked(3)}/>
      </Tooltip>
    </div>);
};

export default Icon;
