import { DocumentDuplicateIcon, PencilSquareIcon, TrashIcon } from '@heroicons/react/20/solid';
import {
clearUserPatterns,
deletePattern,
createDuplicatePattern,
exportPatterns,
addUserPattern,
importPatterns,
createNewUserPattern,
renamePattern,
useActivePattern,
useViewingPattern,
useSettings,
} from '../../settings.mjs';
import * as tunes from '../tunes.mjs';
function classNames(...classes) {
return classes.filter(Boolean).join(' ');
}
function PatternButton({ showOutline, onClick, label, showHiglight }) {
return (
{label}
);
}
function PatternButtons({ patterns, activePattern, onClick, viewingPattern }) {
return (
{Object.entries(patterns).map(([key, data]) => (
onClick(key, data)}
/>
))}
);
}
export function PatternsTab({ context }) {
const { userPatterns } = useSettings();
const activePattern = useActivePattern();
const viewingPattern = useViewingPattern();
const onPatternClick = (pattern, data) => {
// display selected pattern code in the window
context.handleUpdate({ pattern, code: data.code, evaluate: false });
};
const addPattern = ({ pattern, code }) => {
addUserPattern(pattern, { code });
context.handleUpdate({ code, pattern, evaluate: false });
};
const examplePatterns = {};
Object.entries(tunes).forEach(([key, code]) => (examplePatterns[key] = { code }));
const isExample = examplePatterns[viewingPattern] != null;
return (
{viewingPattern && (
{viewingPattern}
{!isExample && (
)}
{!isExample && (
)}
)}
);
}