diff --git a/apps/demo/index.html b/apps/demo/index.html
index 9bc01e3..dd7517b 100644
--- a/apps/demo/index.html
+++ b/apps/demo/index.html
@@ -50,6 +50,10 @@
Try Example Links
📷
Instagram Profile
+
diff --git a/apps/demo/src/style.css b/apps/demo/src/style.css
index 79a6049..f70eb3f 100644
--- a/apps/demo/src/style.css
+++ b/apps/demo/src/style.css
@@ -238,3 +238,12 @@ h1 {
white-space: pre-wrap;
word-wrap: break-word;
}
+
+.twitter-link:hover {
+ border-color: #1DA1F2;
+}
+
+.instagram-link:hover {
+ border-color:#833AB4;
+}
+
diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts
index 89f88f2..3021a58 100644
--- a/packages/core/src/index.ts
+++ b/packages/core/src/index.ts
@@ -1,15 +1,15 @@
-import {
- instagramHandler,
- linkedinHandler,
- unknownHandler,
- youtubeHandler,
- spotifyHandler,
-} from './platforms';
-import { DeepLinkResult } from './types';
+import { instagramHandler, linkedinHandler, unknownHandler, youtubeHandler, twitterHandler, spotifyHandler } from "./platforms";
+import { DeepLinkResult } from "./types";
export * from './types';
-const handlers = [youtubeHandler, linkedinHandler, instagramHandler, spotifyHandler];
+const handlers = [
+ youtubeHandler,
+ linkedinHandler,
+ instagramHandler,
+ twitterHandler,
+ spotifyHandler,
+];
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 34171fa..a0f9cae 100644
--- a/packages/core/src/platforms/index.ts
+++ b/packages/core/src/platforms/index.ts
@@ -1,7 +1,15 @@
-import { linkedinHandler } from './linkedin';
-import { unknownHandler } from './unknown';
-import { youtubeHandler } from './youtube';
-import { instagramHandler } from './instagram';
+import { linkedinHandler } from "./linkedin";
+import { unknownHandler } from "./unknown";
+import { youtubeHandler } from "./youtube";
+import { instagramHandler } from "./instagram";
+import { twitterHandler } from "./twitter";
import { spotifyHandler } from './spotify';
-export { linkedinHandler, youtubeHandler, instagramHandler, spotifyHandler, unknownHandler };
+export {
+ linkedinHandler,
+ youtubeHandler,
+ instagramHandler,
+ unknownHandler,
+ twitterHandler,
+ spotifyHandler
+}
diff --git a/packages/core/src/platforms/twitter.ts b/packages/core/src/platforms/twitter.ts
new file mode 100644
index 0000000..e680cb8
--- /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(/x\.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 339d2d8..9e89ce8 100644
--- a/packages/core/src/types.ts
+++ b/packages/core/src/types.ts
@@ -1,4 +1,4 @@
-export type Platform = 'youtube' | 'linkedin' | 'instagram' | 'spotify' | 'unknown';
+export type Platform = 'youtube' | 'linkedin' | 'instagram' | 'unknown' | 'twitter' | 'spotify';
export interface DeepLinkResult {
webUrl: string;