import { DocumentDuplicateIcon, PencilSquareIcon, TrashIcon } from '@heroicons/react/20/solid';
import { useMemo } from 'react';
import {
clearUserPatterns,
deleteActivePattern,
duplicateActivePattern,
exportPatterns,
getUserPattern,
importPatterns,
newUserPattern,
renameActivePattern,
setActivePattern,
useActivePattern,
useSettings,
} from '../../settings.mjs';
import * as tunes from '../tunes.mjs';
function classNames(...classes) {
return classes.filter(Boolean).join(' ');
}
function PatternButton({ isActive, onClick, label }) {
return (
{label}
);
}
function PatternButtons({ patterns, activePattern, onClick }) {
return (
{Object.entries(patterns).map(([key, data]) => (
onClick(key, data)} />
))}
);
}
export function PatternsTab({ context }) {
const { userPatterns } = useSettings();
const activePattern = useActivePattern();
const isExample = useMemo(() => activePattern && !!tunes[activePattern], [activePattern]);
const onPatternClick = (key, data) => {
const { code } = data;
setActivePattern(key);
context.handleUpdate({ code, evaluate: false });
};
const examplePatterns = {};
Object.entries(tunes).forEach(([key, code]) => (examplePatterns[key] = { code }));
return (
{activePattern && (
{activePattern}
{!isExample && (
)}
{!isExample && (
)}
)}
);
}