Skip to content

Commit 60e3422

Browse files
committed
add viewSelection=false to hide view selector
1 parent 76a2572 commit 60e3422

File tree

2 files changed

+24
-1
lines changed

2 files changed

+24
-1
lines changed

typescript-sdk/apps/dojo/src/components/sidebar/sidebar.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ interface SidebarProps {
2929
export function Sidebar({ isMobile, onMobileClose }: SidebarProps) {
3030
const router = useRouter();
3131
const pathname = usePathname();
32-
const { view, pickerDisabled, featureSelectionDisabled, setView } = useURLParams();
32+
const { view, pickerDisabled, featureSelectionDisabled, setView, viewSelectionDisabled} = useURLParams();
3333
const [isDarkTheme, setIsDarkTheme] = useState<boolean>(false);
3434

3535
// Extract the current integration ID from the pathname
@@ -116,6 +116,7 @@ export function Sidebar({ isMobile, onMobileClose }: SidebarProps) {
116116
</div>
117117

118118
{/* Controls Section */}
119+
{(!viewSelectionDisabled || !pickerDisabled) && (
119120
<div className="p-4 border-b bg-background">
120121
{/* Integration picker */}
121122
{!pickerDisabled && (
@@ -144,6 +145,7 @@ export function Sidebar({ isMobile, onMobileClose }: SidebarProps) {
144145
)}
145146

146147
{/* Preview/Code Tabs */}
148+
{!viewSelectionDisabled &&
147149
<div className="mb-1">
148150
<label className="block text-sm font-medium text-muted-foreground mb-2">View</label>
149151
<Tabs
@@ -176,7 +178,9 @@ export function Sidebar({ isMobile, onMobileClose }: SidebarProps) {
176178
</TabsList>
177179
</Tabs>
178180
</div>
181+
}
179182
</div>
183+
)}
180184

181185
{/* Demo List */}
182186
<div className="flex-1 overflow-auto">

typescript-sdk/apps/dojo/src/contexts/url-params-context.tsx

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ interface URLParamsState {
88
view: View;
99
sidebarHidden: boolean;
1010
featureSelectionDisabled: boolean;
11+
viewSelectionDisabled: boolean;
1112
pickerDisabled: boolean;
1213
file?: string;
1314
}
@@ -16,6 +17,7 @@ interface URLParamsContextType extends URLParamsState {
1617
setView: (view: View) => void;
1718
setSidebarHidden: (disabled: boolean) => void;
1819
setFeatureSelectionDisabled: (disabled: boolean) => void;
20+
setViewSelectionDisabled: (disabled: boolean) => void;
1921
setPickerDisabled: (disabled: boolean) => void;
2022
setCodeFile: (fileName: string) => void;
2123
}
@@ -35,6 +37,7 @@ export function URLParamsProvider({ children }: URLParamsProviderProps) {
3537
const [state, setState] = useState<URLParamsState>(() => ({
3638
view: (searchParams.get("view") as View) || "preview",
3739
sidebarHidden: searchParams.get("sidebar") === "disabled",
40+
viewSelectionDisabled: searchParams.get("viewSelection") === "false",
3841
pickerDisabled: searchParams.get("picker") === "false",
3942
featureSelectionDisabled: searchParams.get("features") === "false",
4043
}));
@@ -61,6 +64,14 @@ export function URLParamsProvider({ children }: URLParamsProviderProps) {
6164
}
6265
}
6366

67+
// Update viewSelection param
68+
if (newState.viewSelectionDisabled !== undefined) {
69+
if (newState.viewSelectionDisabled) {
70+
params.set("viewSelection", "false");
71+
} else {
72+
params.delete("viewSelection");
73+
}
74+
}
6475
// Update features param
6576
if (newState.featureSelectionDisabled !== undefined) {
6677
if (newState.featureSelectionDisabled) {
@@ -90,6 +101,7 @@ export function URLParamsProvider({ children }: URLParamsProviderProps) {
90101
sidebarHidden: searchParams.get("sidebar") === "disabled",
91102
pickerDisabled: searchParams.get("picker") === "false",
92103
featureSelectionDisabled: searchParams.get("features") === "false",
104+
viewSelectionDisabled: searchParams.get("viewSelection") === "false",
93105
};
94106

95107
setState(newState);
@@ -120,6 +132,12 @@ export function URLParamsProvider({ children }: URLParamsProviderProps) {
120132
updateURL({ featureSelectionDisabled });
121133
};
122134

135+
const setViewSelectionDisabled = (viewSelectionDisabled: boolean) => {
136+
const newState = { ...state, viewSelectionDisabled };
137+
setState(newState);
138+
updateURL({ viewSelectionDisabled });
139+
};
140+
123141
const setCodeFile = (fileName: string) => {
124142
const newState = { ...state, file: fileName };
125143
setState(newState);
@@ -132,6 +150,7 @@ export function URLParamsProvider({ children }: URLParamsProviderProps) {
132150
setSidebarHidden,
133151
setPickerDisabled,
134152
setFeatureSelectionDisabled,
153+
setViewSelectionDisabled,
135154
setCodeFile,
136155
};
137156

0 commit comments

Comments
 (0)