Skip to content

Commit 2dcbd91

Browse files
authored
Merge pull request #1857 from appwrite/fix-references-routing
Fix: routing in API references
2 parents 9d0d173 + 152023f commit 2dcbd91

File tree

2 files changed

+18
-8
lines changed

2 files changed

+18
-8
lines changed

src/routes/docs/references/+layout.svelte

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,15 @@
88
/\/docs\/references\/.*?\/(client|server).*?\/.*?\/?/
99
);
1010
11-
$: prefix = `/docs/references/${$preferredVersion ?? $page.params?.version ?? 'cloud'}/${
12-
$preferredPlatform ?? $page.params?.platform ?? 'client-web'
13-
}`;
11+
$: platform = $preferredPlatform ?? $page.params?.platform ?? 'client-web';
12+
13+
/* correct platform prefix for references page */
14+
$: resolvedPlatformPrefix = /^server-|^client-/.test(platform)
15+
? platform
16+
: `server-${platform}`;
17+
18+
$: prefix = `/docs/references/${$preferredVersion ?? $page.params?.version ?? 'cloud'}/${resolvedPlatformPrefix}`;
19+
1420
$: navigation = [
1521
{
1622
label: 'Getting started',

src/routes/docs/references/[version]/[platform]/[service]/+page.svelte

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -54,11 +54,14 @@
5454
// except nodejs, all other server sided need to be saved as without `server-` prefix
5555
const isServerSide =
5656
!platform.startsWith('client-') && !platform.startsWith('server-nodejs');
57+
58+
let correctPlatform = platform;
5759
if (isServerSide) {
58-
const correctPlatform = platform.replaceAll(`server-`, ``);
59-
preferredPlatform.set(correctPlatform as Platform);
60+
correctPlatform = platform.replaceAll(`server-`, ``) as Platform;
6061
}
6162
63+
preferredPlatform.set(correctPlatform as Platform);
64+
6265
goto(`/docs/references/${version}/${platform}/${service}`, {
6366
noScroll: true
6467
});
@@ -87,7 +90,7 @@
8790
// nodejs has a `server-` prefix.
8891
const needsServerPrefix =
8992
!platform.startsWith('client-') && !platform.startsWith('server-');
90-
if (needsServerPrefix) {
93+
if (needsServerPrefix && document.referrer) {
9194
platformBindingForSelect = `server-${platform}` as Platform;
9295
}
9396
}
@@ -100,7 +103,8 @@
100103
const hasPlatformPrefix =
101104
$preferredPlatform.startsWith('client-') || $preferredPlatform.startsWith('server-');
102105
103-
if (!isSame) {
106+
/* `document.referrer` = don't redirect if the page was opened via a direct url hit */
107+
if (!isSame && document.referrer) {
104108
const platformMode = hasPlatformPrefix
105109
? $preferredPlatform
106110
: `server-${$preferredPlatform}`;
@@ -123,7 +127,7 @@
123127
// the service description up to the first full stop, providing sufficient information.
124128
$: shortenedDescription = serviceDescription.substring(0, serviceDescription.indexOf('.') + 1);
125129
126-
$: platformBindingForSelect = platform;
130+
$: platformBindingForSelect = $page.params.platform as Platform;
127131
$: platform = ($preferredPlatform ?? $page.params.platform) as Platform;
128132
$: platformType = platform.startsWith('client-') ? 'CLIENT' : 'SERVER';
129133
$: serviceName = serviceMap[data.service?.name];

0 commit comments

Comments
 (0)