import { useState } from 'react';
import { MetaList, Text, Link, DateTimeDisplay, Avatar } from '@pega/cosmos-react-core';
import { Assignments, tasksHelpers as helpers } from '@pega/cosmos-react-work';
import { AIButtonFormDemo } from '../../core/AIButton/AIButton.stories';
import viewGroups from '../Tasks/Tasks.mocks';
export default {
    title: 'Work/Assignments',
    component: Assignments
};
export const AssignmentsDemo = (args) => {
    const [hasOpenTask, setHasOpenTask] = useState(false);
    const [open, setOpen] = useState(true);
    const activeView = helpers.getSelectedView(viewGroups);
    const activeViewTaskCount = args.count ?? activeView?.count ?? 0;
    const taskArray = Array.from({
        length: args.count ?? activeViewTaskCount
    }, (_, i) => {
        const dueIn = 86400000 * i;
        return {
            id: `${i}`,
            name: `Task ${i + 1}`,
            processName: i % 2 ? 'Demo process' : undefined,
            avatar: <Avatar name='James Gregory'/>,
            meta: (<MetaList items={[
                    <Text variant='secondary'>
                Due <DateTimeDisplay variant='relative' value={Date.now() + dueIn}/>
              </Text>,
                    <Link href='#demo'>Parent case link</Link>
                ]}/>),
            additionalActions: [
                {
                    id: '1',
                    text: 'Action 1'
                },
                {
                    id: '2',
                    text: 'Action 2'
                }
            ],
            onOpen: args.openableTasks !== false
                ? () => {
                    setHasOpenTask(true);
                }
                : undefined,
            content: hasOpenTask ? (<AIButtonFormDemo onCancel={() => setHasOpenTask(false)} onSubmit={() => setHasOpenTask(false)}/>) : null
        };
    });
    return (<Assignments count={activeViewTaskCount} items={taskArray} collapsed={args.collapsed !== false ? open : undefined} onToggleCollapsed={args.collapsed !== false
            ? () => {
                setOpen(cur => !cur);
            }
            : undefined}/>);
};
AssignmentsDemo.args = {
    openableTasks: true,
    count: undefined,
    collapsed: true
};
AssignmentsDemo.argTypes = {
    count: { control: { type: 'number' } },
    openableTasks: { control: { type: 'boolean' } },
    collapsed: { control: { type: 'boolean' } }
};
//# sourceMappingURL=Assignments.stories.jsx.map