Bluesky app fork with some witchin' additions ๐Ÿ’ซ witchsky.app
bluesky fork

Make Steam uri validate #59

This fixes a regression caused by the sanitation update where links using the steam:// protocol will fail the check. Examples: at://did:plc:iif6bnwns5ikitrpwvlz2eo5/app.bsky.actor.profile/self (the website field) at://did:plc:iif6bnwns5ikitrpwvlz2eo5/app.bsky.feed.post/3leh2gsfu4u23 (the app.bsky.richtext.facet#link)

Labels

None yet.

assignee

None yet.

Participants 3
AT URI
at://did:plc:iif6bnwns5ikitrpwvlz2eo5/sh.tangled.repo.pull/3mejgrpjejw22
+2 -2
Diff #0
+1 -1
src/components/RichText.tsx
··· 13 const WORD_WRAP = {wordWrap: 1} 14 // lifted from facet detection in `RichText` impl, _without_ `gm` flags 15 const URL_REGEX = 16 - /(^|\s|\()((https?:\/\/[\S]+)|((?<domain>[a-z][a-z0-9]*(\.[a-z0-9]+)+)[\S]*))/i 17 18 export type RichTextProps = TextStyleProp & 19 Pick<TextProps, 'selectable' | 'onLayout' | 'onTextLayout'> & {
··· 13 const WORD_WRAP = {wordWrap: 1} 14 // lifted from facet detection in `RichText` impl, _without_ `gm` flags 15 const URL_REGEX = 16 + /(^|\s|\()((https?:\/\/[\S]+)|(steam:\/\/[\S]+)|((?<domain>[a-z][a-z0-9]*(\.[a-z0-9]+)+)[\S]*))/i 17 18 export type RichTextProps = TextStyleProp & 19 Pick<TextProps, 'selectable' | 'onLayout' | 'onTextLayout'> & {
+1 -1
src/lib/strings/website.ts
··· 4 5 export function sanitizeWebsiteForLink(website: string): string { 6 const normalized = website.toLowerCase() 7 - return normalized.startsWith('https') 8 ? normalized 9 : `https://${website.toLowerCase()}` 10 }
··· 4 5 export function sanitizeWebsiteForLink(website: string): string { 6 const normalized = website.toLowerCase() 7 + return normalized.startsWith('https') || normalized.startsWith('steam') 8 ? normalized 9 : `https://${website.toLowerCase()}` 10 }

History

1 round 2 comments
sign up or login to add to the discussion
1 commit
expand
add steam uri to regex and make steam uri sanatize
no conflicts, ready to merge
expand 2 comments

how about making a separate array of allowed schemes and iterating over it to make adding more easier? allowing any is probably also an option

the website field on bluesky profiles allows any uri! also other links should accept any URIs as well. If you make a new round of this PR or open a new one with this functionality, I'll definitely merge it! (but just limiting this to steam links would be ๐Ÿ‘Ž)