diff --git a/app/topics/bbdc-appointment-slots/page.tsx b/app/topics/bbdc-appointment-slots/page.tsx
index d3661eb..e2831a4 100644
--- a/app/topics/bbdc-appointment-slots/page.tsx
+++ b/app/topics/bbdc-appointment-slots/page.tsx
@@ -2,12 +2,11 @@ import { Metadata } from "next";
import React from "react";
import { Container } from "@/components/ui/container";
import { Anchor } from "@/components/ui/anchor";
-import { Button } from "@/components/ui/button";
import Heading from "@/components/ui/heading";
import Subheading from "@/components/ui/subheading";
import Paragraph from "@/components/ui/paragraph";
-import { Routes, TelegramChannel } from "@/lib/enums";
-import { TELEGRAM_SHORT_URL } from "@/lib/constants";
+import TelegramLinkButton from "@/components/telegram-link-button";
+import { Routes, TelegramChannel, TopicTitle } from "@/lib/enums";
import { META_OPEN_GRAPH, META_TWITTER } from "@/app/shared-metadata";
import BbdcLessonSlotsInfo from "./bbdc-lesson-slots-info";
@@ -99,12 +98,11 @@ export default function BBDCAppointmentSlots() {
as one of the topics you want to subscribe to.
-
-
-
+
);
diff --git a/app/topics/cdc-appointment-slots/page.tsx b/app/topics/cdc-appointment-slots/page.tsx
index 9a3aea8..ad07c5f 100644
--- a/app/topics/cdc-appointment-slots/page.tsx
+++ b/app/topics/cdc-appointment-slots/page.tsx
@@ -1,14 +1,12 @@
import { Metadata } from "next";
-import Link from "next/link";
import React from "react";
import { Container } from "@/components/ui/container";
import { Anchor } from "@/components/ui/anchor";
-import { Button } from "@/components/ui/button";
import Heading from "@/components/ui/heading";
import Subheading from "@/components/ui/subheading";
import Paragraph from "@/components/ui/paragraph";
-import { Routes, TelegramChannel } from "@/lib/enums";
-import { TELEGRAM_SHORT_URL } from "@/lib/constants";
+import TelegramLinkButton from "@/components/telegram-link-button";
+import { Routes, TelegramChannel, TopicTitle } from "@/lib/enums";
import { META_OPEN_GRAPH, META_TWITTER } from "@/app/shared-metadata";
import { CdcSlotsTable } from "./cdc-slots-table";
@@ -90,39 +88,17 @@ export default function CdcAppointmentSlots() {
To get started, simply click either of the buttons below to subscribe to
the Telegram channel and start receiving notifications.
-
-
-
-
-
-
-
+
+
+
);
diff --git a/app/topics/cdc-practical-lesson-slots/page.tsx b/app/topics/cdc-practical-lesson-slots/page.tsx
index 73d05b0..cdf541c 100644
--- a/app/topics/cdc-practical-lesson-slots/page.tsx
+++ b/app/topics/cdc-practical-lesson-slots/page.tsx
@@ -1,14 +1,12 @@
import { Metadata } from "next";
-import Link from "next/link";
import React from "react";
import { Container } from "@/components/ui/container";
import { Anchor } from "@/components/ui/anchor";
-import { Button } from "@/components/ui/button";
import Heading from "@/components/ui/heading";
import Subheading from "@/components/ui/subheading";
import Paragraph from "@/components/ui/paragraph";
-import { Routes, TelegramChannel } from "@/lib/enums";
-import { TELEGRAM_SHORT_URL } from "@/lib/constants";
+import TelegramLinkButton from "@/components/telegram-link-button";
+import { Routes, TelegramChannel, TopicTitle } from "@/lib/enums";
import { META_OPEN_GRAPH, META_TWITTER } from "@/app/shared-metadata";
import CdcLessonSlotsInfo from "./cdc-lesson-slots-info";
@@ -110,12 +108,11 @@ export default function CdcPracticalLessonSlots() {
Telegram channel and start receiving notifications.
-
-
-
+
);
diff --git a/app/topics/coe-bidding-results/page.tsx b/app/topics/coe-bidding-results/page.tsx
index 51ec8ac..3fd138c 100644
--- a/app/topics/coe-bidding-results/page.tsx
+++ b/app/topics/coe-bidding-results/page.tsx
@@ -1,14 +1,12 @@
import { Metadata } from "next";
-import Link from "next/link";
import React from "react";
import { Container } from "@/components/ui/container";
-import { Button } from "@/components/ui/button";
import Heading from "@/components/ui/heading";
import Subheading from "@/components/ui/subheading";
import Paragraph from "@/components/ui/paragraph";
import { Anchor } from "@/components/ui/anchor";
+import SubscribeLinkButton from "@/components/subscribe-link-button";
import { Routes } from "@/lib/enums";
-import { SUBSCRIBE_FORM_ID } from "@/lib/constants";
import { META_OPEN_GRAPH, META_TWITTER } from "@/app/shared-metadata";
import { CoeBiddingResultsTable } from "./coe-bidding-results-table";
@@ -129,11 +127,10 @@ export default function CoeBiddingResults() {
want to subscribe to.
-
+
);
diff --git a/app/topics/fixed-deposit-rates/page.tsx b/app/topics/fixed-deposit-rates/page.tsx
index 7564bba..b0a02b3 100644
--- a/app/topics/fixed-deposit-rates/page.tsx
+++ b/app/topics/fixed-deposit-rates/page.tsx
@@ -1,15 +1,13 @@
import { Metadata } from "next";
import React from "react";
import { Container } from "@/components/ui/container";
-import { Button } from "@/components/ui/button";
-import { Anchor } from "@/components/ui/anchor";
import Heading from "@/components/ui/heading";
import Subheading from "@/components/ui/subheading";
import Paragraph from "@/components/ui/paragraph";
-import { Routes, TelegramChannel } from "@/lib/enums";
+import TelegramLinkButton from "@/components/telegram-link-button";
+import { Routes, TelegramChannel, TopicTitle } from "@/lib/enums";
import { META_OPEN_GRAPH, META_TWITTER } from "@/app/shared-metadata";
import { FixedDepositRatesTable } from "./fixed-deposit-rates-table";
-import { TELEGRAM_SHORT_URL } from "@/lib/constants";
const title = "Fixed Deposit Rates";
const description =
@@ -63,12 +61,11 @@ export default function FixedDepositRates() {
Telegram channel and start receiving notifications.
-
-
-
+
);
diff --git a/app/topics/japan-visa-appointment-slots/page.tsx b/app/topics/japan-visa-appointment-slots/page.tsx
index c70b768..8c2de39 100644
--- a/app/topics/japan-visa-appointment-slots/page.tsx
+++ b/app/topics/japan-visa-appointment-slots/page.tsx
@@ -1,14 +1,13 @@
import { Metadata } from "next";
-import Link from "next/link";
import React from "react";
import { Container } from "@/components/ui/container";
import { Anchor } from "@/components/ui/anchor";
-import { Button } from "@/components/ui/button";
import Heading from "@/components/ui/heading";
import Subheading from "@/components/ui/subheading";
import Paragraph from "@/components/ui/paragraph";
-import { Routes, TelegramChannel } from "@/lib/enums";
-import { SUBSCRIBE_FORM_ID, TELEGRAM_SHORT_URL } from "@/lib/constants";
+import TelegramLinkButton from "@/components/telegram-link-button";
+import SubscribeLinkButton from "@/components/subscribe-link-button";
+import { Routes, TelegramChannel, TopicTitle } from "@/lib/enums";
import { META_OPEN_GRAPH, META_TWITTER } from "@/app/shared-metadata";
import { JapanVisaSlotsTable } from "./japan-visa-slots-table";
@@ -83,45 +82,27 @@ export default function JapanVisa() {
notifications subscription page (for other visa applications and
services).
-
+
-
+
-
+
-
+
);
diff --git a/app/topics/jetstar-flights/page.tsx b/app/topics/jetstar-flights/page.tsx
index ca16c32..6ed35d9 100644
--- a/app/topics/jetstar-flights/page.tsx
+++ b/app/topics/jetstar-flights/page.tsx
@@ -1,15 +1,19 @@
import { Metadata } from "next";
import React from "react";
import { Container } from "@/components/ui/container";
-import { Button } from "@/components/ui/button";
import { Anchor } from "@/components/ui/anchor";
import Heading from "@/components/ui/heading";
import Subheading from "@/components/ui/subheading";
import Paragraph from "@/components/ui/paragraph";
-import { FlightAirline, Routes, TelegramChannel } from "@/lib/enums";
+import TelegramLinkButton from "@/components/telegram-link-button";
+import {
+ FlightAirline,
+ Routes,
+ TelegramChannel,
+ TopicTitle,
+} from "@/lib/enums";
import { META_OPEN_GRAPH, META_TWITTER } from "@/app/shared-metadata";
import { FlightsTable } from "@/components/flights-table";
-import { TELEGRAM_SHORT_URL } from "@/lib/constants";
const title = "Jetstar Flights";
const description =
@@ -70,12 +74,11 @@ export default function JetstarFlights() {
Telegram channel and start receiving notifications.
-
-
-
+
);
diff --git a/app/topics/ktm-train-tickets/page.tsx b/app/topics/ktm-train-tickets/page.tsx
index 695b1ae..4492279 100644
--- a/app/topics/ktm-train-tickets/page.tsx
+++ b/app/topics/ktm-train-tickets/page.tsx
@@ -1,15 +1,13 @@
import { Metadata } from "next";
-import Link from "next/link";
import React from "react";
import { Container } from "@/components/ui/container";
-import { Button } from "@/components/ui/button";
import { Anchor } from "@/components/ui/anchor";
import Heading from "@/components/ui/heading";
import Subheading from "@/components/ui/subheading";
import Paragraph from "@/components/ui/paragraph";
-import { Routes, TelegramChannel } from "@/lib/enums";
+import TelegramLinkButton from "@/components/telegram-link-button";
+import { Routes, TelegramChannel, TopicTitle } from "@/lib/enums";
import { META_OPEN_GRAPH, META_TWITTER } from "@/app/shared-metadata";
-import { TELEGRAM_SHORT_URL } from "@/lib/constants";
import { TrainTicketsTable } from "./train-tickets-table";
import { TrainScheduleTable } from "./train-schedule-table";
@@ -127,12 +125,11 @@ export default function KtmTrainTickets() {
Telegram channel and start receiving notifications.
-
-
-
+
);
diff --git a/app/topics/scoot-flights/page.tsx b/app/topics/scoot-flights/page.tsx
index 63d9551..2642583 100644
--- a/app/topics/scoot-flights/page.tsx
+++ b/app/topics/scoot-flights/page.tsx
@@ -2,13 +2,12 @@ import { Metadata } from "next";
import React from "react";
import { Anchor } from "@/components/ui/anchor";
import { Container } from "@/components/ui/container";
-import { Button } from "@/components/ui/button";
import Heading from "@/components/ui/heading";
import Subheading from "@/components/ui/subheading";
import Paragraph from "@/components/ui/paragraph";
-import { Routes, TelegramChannel } from "@/lib/enums";
+import TelegramLinkButton from "@/components/telegram-link-button";
+import { Routes, TelegramChannel, TopicTitle } from "@/lib/enums";
import { META_OPEN_GRAPH, META_TWITTER } from "@/app/shared-metadata";
-import { TELEGRAM_SHORT_URL } from "@/lib/constants";
import TravelDealsInfo from "./travel-deals-info";
const title = "Scoot Flights";
@@ -71,12 +70,11 @@ export default function ScootFlights() {
Telegram channel and start receiving notifications.
-
-
-
+
);
diff --git a/app/topics/singapore-airlines-flights/page.tsx b/app/topics/singapore-airlines-flights/page.tsx
index 25d6216..fb8b16d 100644
--- a/app/topics/singapore-airlines-flights/page.tsx
+++ b/app/topics/singapore-airlines-flights/page.tsx
@@ -2,14 +2,18 @@ import { Metadata } from "next";
import React from "react";
import { Anchor } from "@/components/ui/anchor";
import { Container } from "@/components/ui/container";
-import { Button } from "@/components/ui/button";
import Heading from "@/components/ui/heading";
import Subheading from "@/components/ui/subheading";
import Paragraph from "@/components/ui/paragraph";
import { FlightsTable } from "@/components/flights-table";
-import { FlightAirline, Routes, TelegramChannel } from "@/lib/enums";
+import TelegramLinkButton from "@/components/telegram-link-button";
+import {
+ FlightAirline,
+ Routes,
+ TelegramChannel,
+ TopicTitle,
+} from "@/lib/enums";
import { META_OPEN_GRAPH, META_TWITTER } from "@/app/shared-metadata";
-import { TELEGRAM_SHORT_URL } from "@/lib/constants";
const title = "Singapore Airlines Flights";
const description =
@@ -74,12 +78,11 @@ export default function SingaporeAirlinesFlights() {
Telegram channel and start receiving notifications.
-
-
-
+
);
diff --git a/app/topics/ssdc-appointment-slots/page.tsx b/app/topics/ssdc-appointment-slots/page.tsx
index 23cc331..b4273a8 100644
--- a/app/topics/ssdc-appointment-slots/page.tsx
+++ b/app/topics/ssdc-appointment-slots/page.tsx
@@ -1,14 +1,13 @@
import { Metadata } from "next";
-import Link from "next/link";
import React from "react";
import { Container } from "@/components/ui/container";
import { Anchor } from "@/components/ui/anchor";
-import { Button } from "@/components/ui/button";
import Heading from "@/components/ui/heading";
import Subheading from "@/components/ui/subheading";
import Paragraph from "@/components/ui/paragraph";
-import { Routes, TelegramChannel } from "@/lib/enums";
-import { SUBSCRIBE_FORM_ID, TELEGRAM_SHORT_URL } from "@/lib/constants";
+import TelegramLinkButton from "@/components/telegram-link-button";
+import SubscribeLinkButton from "@/components/subscribe-link-button";
+import { Routes, TelegramChannel, TopicTitle } from "@/lib/enums";
import { META_OPEN_GRAPH, META_TWITTER } from "@/app/shared-metadata";
import { SsdcSlotsTable } from "./ssdc-slots-table";
@@ -94,36 +93,27 @@ export default function SsdcAppointmentSlots() {
or to head over to the email notifications subscription page (for other
appointments).
-
+
-
+
-
+
-
+
);
diff --git a/app/topics/tokyo-disneyland-attraction-updates/page.tsx b/app/topics/tokyo-disneyland-attraction-updates/page.tsx
index b90849b..dfe3c54 100644
--- a/app/topics/tokyo-disneyland-attraction-updates/page.tsx
+++ b/app/topics/tokyo-disneyland-attraction-updates/page.tsx
@@ -2,14 +2,18 @@ import { Metadata } from "next";
import React from "react";
import { Anchor } from "@/components/ui/anchor";
import { Container } from "@/components/ui/container";
-import { Button } from "@/components/ui/button";
import Heading from "@/components/ui/heading";
import Subheading from "@/components/ui/subheading";
import Paragraph from "@/components/ui/paragraph";
+import TelegramLinkButton from "@/components/telegram-link-button";
import { ThemeParkFacilitiesTable } from "@/components/theme-park-facilities-table";
-import { Routes, TelegramChannel, ThemeParkService } from "@/lib/enums";
+import {
+ Routes,
+ TelegramChannel,
+ ThemeParkService,
+ TopicTitle,
+} from "@/lib/enums";
import { META_OPEN_GRAPH, META_TWITTER } from "@/app/shared-metadata";
-import { TELEGRAM_SHORT_URL } from "@/lib/constants";
const title = "Tokyo Disneyland Attraction Updates";
const description =
@@ -85,12 +89,11 @@ export default function TokyoDisneylandAttractionUpdates() {
Telegram channel and start receiving notifications.
-
-
-
+
);
diff --git a/app/topics/tokyo-disneysea-attraction-updates/page.tsx b/app/topics/tokyo-disneysea-attraction-updates/page.tsx
index d099dba..b336b19 100644
--- a/app/topics/tokyo-disneysea-attraction-updates/page.tsx
+++ b/app/topics/tokyo-disneysea-attraction-updates/page.tsx
@@ -2,14 +2,18 @@ import { Metadata } from "next";
import React from "react";
import { Anchor } from "@/components/ui/anchor";
import { Container } from "@/components/ui/container";
-import { Button } from "@/components/ui/button";
import Heading from "@/components/ui/heading";
import Subheading from "@/components/ui/subheading";
import Paragraph from "@/components/ui/paragraph";
+import TelegramLinkButton from "@/components/telegram-link-button";
import { ThemeParkFacilitiesTable } from "@/components/theme-park-facilities-table";
-import { Routes, TelegramChannel, ThemeParkService } from "@/lib/enums";
+import {
+ Routes,
+ TelegramChannel,
+ ThemeParkService,
+ TopicTitle,
+} from "@/lib/enums";
import { META_OPEN_GRAPH, META_TWITTER } from "@/app/shared-metadata";
-import { TELEGRAM_SHORT_URL } from "@/lib/constants";
const title = "Tokyo DisneySea Attraction Updates";
const description =
@@ -86,12 +90,11 @@ export default function TokyoDisneySeaAttractionUpdates() {
Telegram channel and start receiving notifications.