From c06986abdcd34c002655df3439f171f215b0c534 Mon Sep 17 00:00:00 2001 From: Sachi Richa Date: Sat, 20 Dec 2025 22:49:35 +0530 Subject: [PATCH 1/2] Added Twitter profile --- apps/demo/index.html | 4 ++++ apps/demo/src/style.css | 8 ++++++++ packages/core/src/index.ts | 5 +++-- packages/core/src/platforms/index.ts | 4 +++- packages/core/src/platforms/twitter.ts | 16 ++++++++++++++++ packages/core/src/types.ts | 2 +- 6 files changed, 35 insertions(+), 4 deletions(-) create mode 100644 packages/core/src/platforms/twitter.ts diff --git a/apps/demo/index.html b/apps/demo/index.html index fe85735..95d7311 100644 --- a/apps/demo/index.html +++ b/apps/demo/index.html @@ -30,6 +30,10 @@

Try Example Links

📷 Instagram Profile + + 𝕏 + Twitter Profile + diff --git a/apps/demo/src/style.css b/apps/demo/src/style.css index 08d2f1a..a615ffe 100644 --- a/apps/demo/src/style.css +++ b/apps/demo/src/style.css @@ -238,3 +238,11 @@ h1 { word-wrap: break-word; } +.twitter-link:hover { + border-color: #f8f3f3; +} + +.instagram-link:hover { + border-color:#833AB4; +} + diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index 99dcde0..526df85 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -1,4 +1,4 @@ -import { instagramHandler, linkedinHandler, unknownHandler, youtubeHandler } from "./platforms"; +import { instagramHandler, linkedinHandler, unknownHandler, youtubeHandler,twitterHandler } from "./platforms"; import { DeepLinkResult } from "./types"; export * from './types'; @@ -6,7 +6,8 @@ export * from './types'; const handlers = [ youtubeHandler, linkedinHandler, - instagramHandler + instagramHandler, + twitterHandler ]; export function generateDeepLink(url: string): DeepLinkResult { const webUrl = url.trim(); diff --git a/packages/core/src/platforms/index.ts b/packages/core/src/platforms/index.ts index 7f31b19..bdfa740 100644 --- a/packages/core/src/platforms/index.ts +++ b/packages/core/src/platforms/index.ts @@ -2,10 +2,12 @@ import { linkedinHandler } from "./linkedin"; import { unknownHandler } from "./unknown"; import { youtubeHandler } from "./youtube"; import { instagramHandler } from "./instagram"; +import { twitterHandler } from "./twitter"; export { linkedinHandler, youtubeHandler, instagramHandler, - unknownHandler + unknownHandler, + twitterHandler } diff --git a/packages/core/src/platforms/twitter.ts b/packages/core/src/platforms/twitter.ts new file mode 100644 index 0000000..ce5358f --- /dev/null +++ b/packages/core/src/platforms/twitter.ts @@ -0,0 +1,16 @@ +// packages/core/src/platforms/twitter.ts +import { DeepLinkHandler } from '../types'; + +export const twitterHandler: DeepLinkHandler = { + match: (url) => url.match(/twitter\.com\/([^/?]+)/), + + build: (webUrl, match) => { + const username = match[1]; + return { + webUrl, + ios: `twitter://user?screen_name=${username}`, + android: `intent://user?screen_name=${username}#Intent;scheme=twitter;package=com.twitter.android;end`, + platform: 'twitter', + }; + }, +}; \ No newline at end of file diff --git a/packages/core/src/types.ts b/packages/core/src/types.ts index 25c9226..cc097b5 100644 --- a/packages/core/src/types.ts +++ b/packages/core/src/types.ts @@ -1,4 +1,4 @@ -export type Platform = 'youtube' | 'linkedin' | 'instagram' | 'unknown'; +export type Platform = 'youtube' | 'linkedin' | 'instagram' | 'unknown' | 'twitter'; export interface DeepLinkResult { webUrl: string; From bcd603b7ffd3fb03dfb515a1728fc3bc9df19874 Mon Sep 17 00:00:00 2001 From: Sachi Richa Date: Sat, 20 Dec 2025 23:29:49 +0530 Subject: [PATCH 2/2] fixed-inconsistencies --- apps/demo/src/style.css | 2 +- packages/core/src/index.ts | 2 +- packages/core/src/platforms/twitter.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/demo/src/style.css b/apps/demo/src/style.css index a615ffe..c9e0204 100644 --- a/apps/demo/src/style.css +++ b/apps/demo/src/style.css @@ -239,7 +239,7 @@ h1 { } .twitter-link:hover { - border-color: #f8f3f3; + border-color: #1DA1F2; } .instagram-link:hover { diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index 526df85..1a70344 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -1,4 +1,4 @@ -import { instagramHandler, linkedinHandler, unknownHandler, youtubeHandler,twitterHandler } from "./platforms"; +import { instagramHandler, linkedinHandler, unknownHandler, youtubeHandler, twitterHandler } from "./platforms"; import { DeepLinkResult } from "./types"; export * from './types'; diff --git a/packages/core/src/platforms/twitter.ts b/packages/core/src/platforms/twitter.ts index ce5358f..e680cb8 100644 --- a/packages/core/src/platforms/twitter.ts +++ b/packages/core/src/platforms/twitter.ts @@ -2,7 +2,7 @@ import { DeepLinkHandler } from '../types'; export const twitterHandler: DeepLinkHandler = { - match: (url) => url.match(/twitter\.com\/([^/?]+)/), + match: (url) => url.match(/x\.com\/([^/?]+)/), build: (webUrl, match) => { const username = match[1];