Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions apps/roam/src/components/settings/AdminPanel.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@ import deleteBlock from "roamjs-components/writes/deleteBlock";
import { USE_REIFIED_RELATIONS } from "~/data/userSettings";
import posthog from "posthog-js";
import { setFeatureFlag } from "~/components/settings/utils/accessors";
import { FeatureFlagPanel } from "./components/BlockPropSettingPanels";
import { getFeatureFlag } from "./utils/accessors";

const NodeRow = ({ node }: { node: PConceptFull }) => {
return (
Expand Down Expand Up @@ -467,6 +469,13 @@ const FeatureFlagsTab = (): React.ReactElement => {
}
/>

<FeatureFlagPanel
title="Use new settings store"
description="When enabled, accessor getters read from block props instead of the old system. Surfaces dual-write gaps during development."
featureKey="Use new settings store"
initialValue={getFeatureFlag("Use new settings store")}
/>

<Button
className="w-96"
icon="send-message"
Expand Down
4 changes: 4 additions & 0 deletions apps/roam/src/components/settings/utils/accessors.ts
Original file line number Diff line number Diff line change
Expand Up @@ -285,6 +285,10 @@ export const getFeatureFlag = (key: keyof FeatureFlags): boolean => {
return flags[key];
};

export const isNewSettingsStoreEnabled = (): boolean => {
return getFeatureFlag("Use new settings store");
};

export const setFeatureFlag = (
key: keyof FeatureFlags,
value: boolean,
Expand Down
2 changes: 2 additions & 0 deletions apps/roam/src/components/settings/utils/zodSchema.example.ts
Original file line number Diff line number Diff line change
Expand Up @@ -90,12 +90,14 @@ const featureFlags: FeatureFlags = {
"Enable left sidebar": true,
"Suggestive mode enabled": true,
"Reified relation triples": false,
"Use new settings store": false,
};

const defaultFeatureFlags: FeatureFlags = {
"Enable left sidebar": false,
"Suggestive mode enabled": false,
"Reified relation triples": false,
"Use new settings store": false,
};

const exportSettings: ExportSettings = {
Expand Down
1 change: 1 addition & 0 deletions apps/roam/src/components/settings/utils/zodSchema.ts
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,7 @@ export const FeatureFlagsSchema = z.object({
"Enable left sidebar": z.boolean().default(false),
"Suggestive mode enabled": z.boolean().default(false),
"Reified relation triples": z.boolean().default(false),
"Use new settings store": z.boolean().default(false),
});

export const ExportSettingsSchema = z.object({
Expand Down
2 changes: 1 addition & 1 deletion apps/roam/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@ import {
DISALLOW_DIAGNOSTICS,
} from "./data/userSettings";
import { initSchema } from "./components/settings/utils/init";

export const DEFAULT_CANVAS_PAGE_FORMAT = "Canvas/*";

export default runExtension(async (onloadArgs) => {
Expand Down Expand Up @@ -156,6 +155,7 @@ export default runExtension(async (onloadArgs) => {
}

await initSchema();

return {
elements: [
style,
Expand Down
Loading