diff --git a/apps/builder/app/builder/features/pages/page-settings.tsx b/apps/builder/app/builder/features/pages/page-settings.tsx
index 573e52d95622..e3be96d1a6d3 100644
--- a/apps/builder/app/builder/features/pages/page-settings.tsx
+++ b/apps/builder/app/builder/features/pages/page-settings.tsx
@@ -27,9 +27,7 @@ import {
ROOT_FOLDER_ID,
findParentFolderByChildId,
ProjectNewRedirectPath,
- DataSource,
isLiteralExpression,
- type System,
documentTypes,
isRootFolder,
} from "@webstudio-is/sdk";
@@ -74,7 +72,6 @@ import {
$instances,
$pages,
$dataSources,
- $dataSourceVariables,
$publishedOrigin,
$project,
$userPlanFeatures,
@@ -112,6 +109,7 @@ import { useUnmount } from "~/shared/hook-utils/use-mount";
import { Card } from "../marketplace/card";
import { selectInstance } from "~/shared/awareness";
import { computeExpression } from "~/shared/data-variables";
+import { $currentSystem } from "~/shared/system";
const fieldDefaultValues = {
name: "Untitled",
@@ -579,7 +577,7 @@ const LanguageField = ({
);
};
-const usePageUrl = (values: Values, systemDataSourceId?: DataSource["id"]) => {
+const usePageUrl = (values: Values) => {
const pages = useStore($pages);
const foldersPath =
pages === undefined ? "" : getPagePath(values.parentFolderId, pages);
@@ -588,16 +586,10 @@ const usePageUrl = (values: Values, systemDataSourceId?: DataSource["id"]) => {
.join("/")
.replace(/\/+/g, "/");
- const dataSourceVariables = useStore($dataSourceVariables);
- const storedSystem =
- systemDataSourceId === undefined
- ? undefined
- : (dataSourceVariables.get(systemDataSourceId) as System);
- const pathParams = storedSystem?.params ?? {};
-
+ const system = useStore($currentSystem);
const publishedOrigin = useStore($publishedOrigin);
const tokens = tokenizePathnamePattern(path);
- const compiledPath = compilePathnamePattern(tokens, pathParams);
+ const compiledPath = compilePathnamePattern(tokens, system.params);
return `${publishedOrigin}${compiledPath}`;
};
@@ -705,13 +697,11 @@ const MarketplaceSection = ({
};
const FormFields = ({
- systemDataSourceId,
autoSelect,
errors,
values,
onChange,
}: {
- systemDataSourceId?: DataSource["id"];
autoSelect?: boolean;
errors: Errors;
values: Values;
@@ -724,7 +714,7 @@ const FormFields = ({
const { allowDynamicData } = useStore($userPlanFeatures);
const { variableValues, scope, aliases } = useStore($pageRootScope);
- const pageUrl = usePageUrl(values, systemDataSourceId);
+ const pageUrl = usePageUrl(values);
if (pages === undefined) {
return;
@@ -1656,12 +1646,7 @@ export const PageSettings = ({
}
}}
>
-
+
);
};
diff --git a/apps/builder/app/canvas/interceptor.ts b/apps/builder/app/canvas/interceptor.ts
index a4b6bf3a04ff..755258076ea6 100644
--- a/apps/builder/app/canvas/interceptor.ts
+++ b/apps/builder/app/canvas/interceptor.ts
@@ -1,4 +1,4 @@
-import { getPagePath, type System } from "@webstudio-is/sdk";
+import { getPagePath } from "@webstudio-is/sdk";
import {
compilePathnamePattern,
matchPathnamePattern,
@@ -6,12 +6,11 @@ import {
} from "~/builder/shared/url-pattern";
import { $selectedPage, selectPage } from "~/shared/awareness";
import {
- $dataSourceVariables,
$isPreviewMode,
$pages,
$selectedPageHash,
} from "~/shared/nano-states";
-import { updateCurrentSystem } from "~/shared/system";
+import { $currentSystem, updateCurrentSystem } from "~/shared/system";
const isAbsoluteUrl = (href: string) => {
try {
@@ -25,13 +24,10 @@ const isAbsoluteUrl = (href: string) => {
const getSelectedPagePathname = () => {
const pages = $pages.get();
const page = $selectedPage.get();
- const dataSourceVariables = $dataSourceVariables.get();
- if (page?.systemDataSourceId && pages) {
- const system = dataSourceVariables.get(page.systemDataSourceId) as
- | undefined
- | System;
+ if (page && pages) {
const tokens = tokenizePathnamePattern(getPagePath(page.id, pages));
- return compilePathnamePattern(tokens, system?.params ?? {});
+ const system = $currentSystem.get();
+ return compilePathnamePattern(tokens, system.params);
}
};
@@ -62,8 +58,8 @@ const switchPageAndUpdateSystem = (href: string, formData?: FormData) => {
$selectedPageHash.set({ hash: pageHref.hash });
selectPage(page.id);
updateCurrentSystem({ params, search });
+ break;
}
- break;
}
};