diff --git a/website/src/repl/components/panel/PatternsTab.jsx b/website/src/repl/components/panel/PatternsTab.jsx
index 8e2b75b9..51946144 100644
--- a/website/src/repl/components/panel/PatternsTab.jsx
+++ b/website/src/repl/components/panel/PatternsTab.jsx
@@ -79,13 +79,11 @@ const updateCodeWindow = (context, patternData, reset = false) => {
context.handleUpdate(patternData, reset);
};
-const autoResetPatternOnChange = !isUdels();
-
function UserPatterns({ context }) {
const activePattern = useActivePattern();
const viewingPatternStore = useViewingPatternData();
const viewingPatternData = parseJSON(viewingPatternStore);
- const { userPatterns, patternFilter } = useSettings();
+ const { userPatterns, patternFilter, patternAutoStart } = useSettings();
const viewingPatternID = viewingPatternData?.id;
return (
@@ -139,7 +137,7 @@ function UserPatterns({ context }) {
updateCodeWindow(
context,
{ ...userPatterns[id], collection: userPattern.collection },
- autoResetPatternOnChange,
+ patternAutoStart,
)
}
patterns={userPatterns}
@@ -188,6 +186,7 @@ function FeaturedPatterns({ context }) {
const examplePatterns = useExamplePatterns();
const collections = examplePatterns.collections;
const patterns = collections.get(patternFilterName.featured);
+ const { patternAutoStart } = useSettings();
return (
{
@@ -213,13 +212,14 @@ function LatestPatterns({ context }) {
const examplePatterns = useExamplePatterns();
const collections = examplePatterns.collections;
const patterns = collections.get(patternFilterName.public);
+ const { patternAutoStart } = useSettings();
return (
{
- updateCodeWindow(context, { ...patterns[id], collection: patternFilterName.public }, autoResetPatternOnChange);
+ updateCodeWindow(context, { ...patterns[id], collection: patternFilterName.public }, patternAutoStart);
}}
paginationOnChange={async (pageNum) => {
await loadAndSetPublicPatterns(pageNum - 1);
diff --git a/website/src/repl/components/panel/SettingsTab.jsx b/website/src/repl/components/panel/SettingsTab.jsx
index 80daef01..c898609d 100644
--- a/website/src/repl/components/panel/SettingsTab.jsx
+++ b/website/src/repl/components/panel/SettingsTab.jsx
@@ -112,6 +112,7 @@ export function SettingsTab({ started }) {
multiChannelOrbits,
isTabIndentationEnabled,
isMultiCursorEnabled,
+ patternAutoStart
} = useSettings();
const shouldAlwaysSync = isUdels();
const canChangeAudioDevice = AudioContext.prototype.setSinkId != null;
@@ -304,6 +305,11 @@ export function SettingsTab({ started }) {
onChange={(cbEvent) => settingsMap.setKey('isCSSAnimationDisabled', cbEvent.target.checked)}
value={isCSSAnimationDisabled}
/>
+ settingsMap.setKey('patternAutoStart', cbEvent.target.checked)}
+ value={patternAutoStart}
+ />
Try clicking the logo in the top left!
diff --git a/website/src/settings.mjs b/website/src/settings.mjs
index 9365a6db..bbf89355 100644
--- a/website/src/settings.mjs
+++ b/website/src/settings.mjs
@@ -96,6 +96,7 @@ export function useSettings() {
isPanelOpen: parseBoolean(state.isPanelOpen),
userPatterns: userPatterns,
multiChannelOrbits: parseBoolean(state.multiChannelOrbits),
+ patternAutoStart: isUdels() ? false : parseBoolean(state.patternAutoStart)
};
}