Skip to content

Commit

Permalink
Merge pull request #606 from tidalcycles/setting-patterning
Browse files Browse the repository at this point in the history
patterning ui settings
  • Loading branch information
felixroos committed Jun 26, 2023
2 parents e698f19 + 3872322 commit 85a6cd8
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 0 deletions.
2 changes: 2 additions & 0 deletions website/src/repl/Repl.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import PlayCircleIcon from '@heroicons/react/20/solid/PlayCircleIcon';
import { themes } from './themes.mjs';
import { settingsMap, useSettings, setLatestCode } from '../settings.mjs';
import Loader from './Loader';
import { settingPatterns } from '../settings.mjs';

const { latestCode } = settingsMap.get();

Expand All @@ -45,6 +46,7 @@ const modules = [

const modulesLoading = evalScope(
controls, // sadly, this cannot be exported from core direclty
settingPatterns,
...modules,
);

Expand Down
16 changes: 16 additions & 0 deletions website/src/settings.mjs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { persistentMap } from '@nanostores/persistent';
import { useStore } from '@nanostores/react';
import { register } from '@strudel.cycles/core';

export const defaultSettings = {
activeFooter: 'intro',
Expand Down Expand Up @@ -33,3 +34,18 @@ export const setActiveFooter = (tab) => settingsMap.setKey('activeFooter', tab);

export const setLatestCode = (code) => settingsMap.setKey('latestCode', code);
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 };

0 comments on commit 85a6cd8

Please sign in to comment.