Skip to content
Merged
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
14 changes: 12 additions & 2 deletions ui/component/youtubeTransferStatus/view.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,13 @@
{isNotElligible && (
<I18nMessage
tokens={{
here: <Button button="link" href="https://help.odysee.tv/category-syncprogram/" label={__('here')} />,
here: (
<Button
button="link"
href="https://help.odysee.tv/category-syncprogram/limits/#requirements/"
label={__('here')}
/>
),
Comment on lines +134 to +140
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🌐 Web query:

do trailing slashes after url fragment anchor identifiers affect browser navigation

💡 Result:

Yes—anything after the first # is part of the fragment identifier, and it runs to the end of the URL, so a trailing slash is not ignored; it changes the fragment value. The / character is explicitly allowed inside a fragment. [1]

Browsers scroll to an in-page target by decoding the fragment and looking for an element whose id exactly equals that decoded fragment (and historically, an <a name="...">). So #section and #section/ are different: #section/ will only scroll if the page contains an element with id="section/". Otherwise, the navigation won’t jump to the intended anchor. [3][4]

Separately, the fragment is a client-side concept (exposed as location.hash / URL.hash), so changing #section to #section/ also changes what client-side routers (hash-based SPAs) see and may change their routing behavior. [2]

Sources: [1] RFC 3986, Fragment Identifier rules • [2] MDN URL.hash • [3] WICG “scroll-to-text-fragment” (patching HTML fragment scrolling; includes “find a potential indicated element” algorithm) • [4] W3C HTML5 spec (id matching is exact)


Remove trailing slash from URL fragment—it prevents anchor navigation.

The fragment identifier #requirements/ won't match an element with id="requirements" on the target page. Browsers perform exact matching, so the trailing slash changes the fragment value. Remove it to ensure the anchor scrolls to the intended section.

Proposed fix
-                    href="https://help.odysee.tv/category-syncprogram/limits/#requirements/"
+                    href="https://help.odysee.tv/category-syncprogram/limits/#requirements"
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
here: (
<Button
button="link"
href="https://help.odysee.tv/category-syncprogram/limits/#requirements/"
label={__('here')}
/>
),
here: (
<Button
button="link"
href="https://help.odysee.tv/category-syncprogram/limits/#requirements"
label={__('here')}
/>
),
🤖 Prompt for AI Agents
In `@ui/component/youtubeTransferStatus/view.jsx` around lines 134 - 140, The href
in the Button component inside youtubeTransferStatus view (the JSX block
rendering the "here" link) uses a fragment with a trailing slash
("#requirements/") which prevents matching id="requirements" on the target page;
update the href to use the fragment without the trailing slash ("#requirements")
so the browser can correctly navigate to the anchor.

email: SITE_HELP_EMAIL,
}}
>
Expand Down Expand Up @@ -281,7 +287,11 @@
: __('You will be able to claim your channel once it has finished syncing.')}{' '}
{youtubeImportPending &&
__('You will not be able to edit the channel or content until the transfer process completes.')}{' '}
<Button button="link" label={__('Learn More')} href="https://help.odysee.tv/category-syncprogram/" />
<Button
button="link"
label={__('Learn More')}
href="https://help.odysee.tv/category-syncprogram/category-walkthrough/claimingyourchannel/"
/>
</p>

{/* Self-Sync Alternative - Only show for experimental UI users */}
Expand Down Expand Up @@ -328,7 +338,7 @@
try {
await navigator.clipboard.writeText(firstAvailableToken);
} catch (err) {
console.log('Failed to copy token:', err);

Check warning on line 341 in ui/component/youtubeTransferStatus/view.jsx

View workflow job for this annotation

GitHub Actions / lint

Unexpected console statement
}
}}
/>
Expand Down
2 changes: 1 addition & 1 deletion ui/page/youtubeSync/view.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,7 @@ export default function YoutubeSync(props: Props) {
<Button
button="link"
label={__('how the program works')}
href="https://help.odysee.tv/category-syncprogram/limits/"
href="https://help.odysee.tv/category-syncprogram/whatisyoutubesync/"
/>
),
site_name: SITE_NAME,
Expand Down
Loading