mirror of
https://github.com/eliasstepanik/strudel-docker.git
synced 2026-01-21 10:38:37 +00:00
Merge pull request #606 from tidalcycles/setting-patterning
patterning ui settings
This commit is contained in:
commit
85a6cd828e
@ -19,6 +19,7 @@ import PlayCircleIcon from '@heroicons/react/20/solid/PlayCircleIcon';
|
|||||||
import { themes } from './themes.mjs';
|
import { themes } from './themes.mjs';
|
||||||
import { settingsMap, useSettings, setLatestCode } from '../settings.mjs';
|
import { settingsMap, useSettings, setLatestCode } from '../settings.mjs';
|
||||||
import Loader from './Loader';
|
import Loader from './Loader';
|
||||||
|
import { settingPatterns } from '../settings.mjs';
|
||||||
|
|
||||||
const { latestCode } = settingsMap.get();
|
const { latestCode } = settingsMap.get();
|
||||||
|
|
||||||
@ -45,6 +46,7 @@ const modules = [
|
|||||||
|
|
||||||
const modulesLoading = evalScope(
|
const modulesLoading = evalScope(
|
||||||
controls, // sadly, this cannot be exported from core direclty
|
controls, // sadly, this cannot be exported from core direclty
|
||||||
|
settingPatterns,
|
||||||
...modules,
|
...modules,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
import { persistentMap } from '@nanostores/persistent';
|
import { persistentMap } from '@nanostores/persistent';
|
||||||
import { useStore } from '@nanostores/react';
|
import { useStore } from '@nanostores/react';
|
||||||
|
import { register } from '@strudel.cycles/core';
|
||||||
|
|
||||||
export const defaultSettings = {
|
export const defaultSettings = {
|
||||||
activeFooter: 'intro',
|
activeFooter: 'intro',
|
||||||
@ -33,3 +34,18 @@ export const setActiveFooter = (tab) => settingsMap.setKey('activeFooter', tab);
|
|||||||
|
|
||||||
export const setLatestCode = (code) => settingsMap.setKey('latestCode', code);
|
export const setLatestCode = (code) => settingsMap.setKey('latestCode', code);
|
||||||
export const setIsZen = (active) => settingsMap.setKey('isZen', !!active);
|
export const setIsZen = (active) => settingsMap.setKey('isZen', !!active);
|
||||||
|
|
||||||
|
const patternSetting = (key) =>
|
||||||
|
register(key, (value, pat) => {
|
||||||
|
value = Array.isArray(value) ? value.join(' ') : value;
|
||||||
|
if (value !== settingsMap.get()[key]) {
|
||||||
|
settingsMap.setKey(key, value);
|
||||||
|
}
|
||||||
|
return pat;
|
||||||
|
});
|
||||||
|
|
||||||
|
export const theme = patternSetting('theme');
|
||||||
|
export const fontFamily = patternSetting('fontFamily');
|
||||||
|
export const fontSize = patternSetting('fontSize');
|
||||||
|
|
||||||
|
export const settingPatterns = { theme, fontFamily, fontSize };
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user