# extendify/3.1.6/src/Assist/components/dashboard/buttons/ActionButton.jsx

Extendify, version 3.1.6. 31 lines.

- Page: https://pluginprobe.com/plugins/extendify/3.1.6/code/src/Assist/components/dashboard/buttons/ActionButton.jsx
- Raw: https://pluginprobe.com/plugins/extendify/3.1.6/raw/src/Assist/components/dashboard/buttons/ActionButton.jsx
- Modified: 2024-09-12T15:49:54+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/extendify/3.1.6/code/src/Assist/components/dashboard/buttons/ActionButton.jsx#L10-L20`.

```jsx
import { EventButton } from '@assist/components/dashboard/buttons/EventButton';
import { LinkButton } from '@assist/components/dashboard/buttons/LinkButton';
import { ModalButton } from '@assist/components/dashboard/buttons/ModalButton';
import { TourButton } from '@assist/components/dashboard/buttons/TourButton';
import { useTours } from '@assist/hooks/useTours';
import { useTasksStore } from '@assist/state/tasks';

export const ActionButton = ({ task }) => {
	const { isCompleted } = useTasksStore();
	const { finishedTour } = useTours();

	if (task.event) {
		return <EventButton task={task} completed={isCompleted(task.slug)} />;
	}

	if (task.type === 'modal')
		return <ModalButton task={task} completed={isCompleted(task.slug)} />;

	if (['html-text-button', 'internalLink'].includes(task.type))
		return <LinkButton task={task} completed={isCompleted(task.slug)} />;

	if (task.type === 'tour')
		return (
			<TourButton
				task={task}
				completed={finishedTour(task.slug) || isCompleted(task.slug)}
			/>
		);
	return null;
};

```
