Skip to content

Commit 2bb5db3

Browse files
implement fixed deposit rates page for gxs, maribank and syfe
1 parent ddc1851 commit 2bb5db3

5 files changed

Lines changed: 282 additions & 0 deletions

File tree

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
import { Metadata } from "next";
2+
import Link from "next/link";
3+
import React from "react";
4+
import { ArrowLeftIcon } from "lucide-react";
5+
import { Button } from "@/components/ui/button";
6+
import { Container } from "@/components/ui/container";
7+
import Heading from "@/components/ui/heading";
8+
import Subheading from "@/components/ui/subheading";
9+
import Paragraph from "@/components/ui/paragraph";
10+
import TelegramLinkButton from "@/components/telegram-link-button";
11+
import { DepositRateAnchor } from "@/components/deposit-rate-anchor";
12+
import { DepositRatesChart } from "@/components/deposit-rates-chart";
13+
import AdUnit from "@/components/ad-unit";
14+
import { META_OPEN_GRAPH, META_TWITTER } from "@/app/shared-metadata";
15+
import {
16+
DepositRateBank,
17+
Routes,
18+
TelegramChannel,
19+
TopicTitle,
20+
} from "@/lib/enums";
21+
22+
const title = "GXS (Boost Pocket) Rates";
23+
const description =
24+
"Track GXS Boost Pocket rate trends over the past 6 months, 1 year and 2 years.";
25+
const url = Routes.FixedDepositRatesGxs;
26+
27+
export const metadata: Metadata = {
28+
title,
29+
description,
30+
alternates: {
31+
canonical: url,
32+
},
33+
openGraph: {
34+
...META_OPEN_GRAPH,
35+
title,
36+
description,
37+
url,
38+
},
39+
twitter: {
40+
...META_TWITTER,
41+
title,
42+
description,
43+
},
44+
};
45+
46+
export default function GxsBoostPocketRates() {
47+
return (
48+
<Container>
49+
<div className="space-y-2">
50+
<Heading>{title}</Heading>
51+
<Subheading>{description}</Subheading>
52+
</div>
53+
<DepositRatesChart
54+
bank={DepositRateBank.GXS}
55+
title="GXS (Boost Pocket) Rate Trend"
56+
/>
57+
<Paragraph>
58+
The chart above shows recent GXS Boost Pocket rate trend movement. You
59+
can use this to decide when to{" "}
60+
<DepositRateAnchor bank={DepositRateBank.GXS} linkText="stash in" />{" "}
61+
GXS Boost Pocket for your savings goals based on current yields.
62+
</Paragraph>
63+
<AdUnit />
64+
<Paragraph>
65+
<span className="font-medium">SG Alerts</span> is a free notification
66+
service that monitors fixed deposit rates and related low-risk
67+
alternatives in Singapore, including GXS Boost Pocket, and sends
68+
Telegram notifications when rates go up.
69+
</Paragraph>
70+
<Paragraph>
71+
To get started, click the button below to join the Telegram channel and
72+
receive updates.
73+
</Paragraph>
74+
<div className="sticky bottom-6 z-50 mt-8 text-center">
75+
<TelegramLinkButton
76+
channel={TelegramChannel.FixedDepositRates}
77+
linkText="Subscribe Now"
78+
className="shadow-md"
79+
topicTitle={TopicTitle.FixedDepositRates}
80+
/>
81+
</div>
82+
<div className="mt-4 text-center">
83+
<Button variant="secondary" asChild>
84+
<Link href={Routes.FixedDepositRates}>
85+
<ArrowLeftIcon className="mr-2 h-4 w-4" />
86+
Go Back
87+
</Link>
88+
</Button>
89+
</div>
90+
</Container>
91+
);
92+
}
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
import { Metadata } from "next";
2+
import Link from "next/link";
3+
import React from "react";
4+
import { ArrowLeftIcon } from "lucide-react";
5+
import { Button } from "@/components/ui/button";
6+
import { Container } from "@/components/ui/container";
7+
import Heading from "@/components/ui/heading";
8+
import Subheading from "@/components/ui/subheading";
9+
import Paragraph from "@/components/ui/paragraph";
10+
import TelegramLinkButton from "@/components/telegram-link-button";
11+
import { DepositRateAnchor } from "@/components/deposit-rate-anchor";
12+
import { DepositRatesChart } from "@/components/deposit-rates-chart";
13+
import AdUnit from "@/components/ad-unit";
14+
import { META_OPEN_GRAPH, META_TWITTER } from "@/app/shared-metadata";
15+
import {
16+
DepositRateBank,
17+
Routes,
18+
TelegramChannel,
19+
TopicTitle,
20+
} from "@/lib/enums";
21+
22+
const title = "MariBank Rates";
23+
const description =
24+
"Track MariBank rate trends over the past 6 months, 1 year and 2 years.";
25+
const url = Routes.FixedDepositRatesMaribank;
26+
27+
export const metadata: Metadata = {
28+
title,
29+
description,
30+
alternates: {
31+
canonical: url,
32+
},
33+
openGraph: {
34+
...META_OPEN_GRAPH,
35+
title,
36+
description,
37+
url,
38+
},
39+
twitter: {
40+
...META_TWITTER,
41+
title,
42+
description,
43+
},
44+
};
45+
46+
export default function MariBankRates() {
47+
return (
48+
<Container>
49+
<div className="space-y-2">
50+
<Heading>{title}</Heading>
51+
<Subheading>{description}</Subheading>
52+
</div>
53+
<DepositRatesChart
54+
bank={DepositRateBank.MARIBANK}
55+
title="MariBank Rate Trend"
56+
/>
57+
<Paragraph>
58+
The chart above shows recent MariBank rate trend movement. You can use
59+
this to decide when to{" "}
60+
<DepositRateAnchor bank={DepositRateBank.MARIBANK} linkText="save with" />{" "}
61+
MariBank based on current yields and your savings plans.
62+
</Paragraph>
63+
<AdUnit />
64+
<Paragraph>
65+
<span className="font-medium">SG Alerts</span> is a free notification
66+
service that monitors fixed deposit rates and related low-risk
67+
alternatives in Singapore, including MariBank, and sends Telegram
68+
notifications when rates go up.
69+
</Paragraph>
70+
<Paragraph>
71+
To get started, click the button below to join the Telegram channel and
72+
receive updates.
73+
</Paragraph>
74+
<div className="sticky bottom-6 z-50 mt-8 text-center">
75+
<TelegramLinkButton
76+
channel={TelegramChannel.FixedDepositRates}
77+
linkText="Subscribe Now"
78+
className="shadow-md"
79+
topicTitle={TopicTitle.FixedDepositRates}
80+
/>
81+
</div>
82+
<div className="mt-4 text-center">
83+
<Button variant="secondary" asChild>
84+
<Link href={Routes.FixedDepositRates}>
85+
<ArrowLeftIcon className="mr-2 h-4 w-4" />
86+
Go Back
87+
</Link>
88+
</Button>
89+
</div>
90+
</Container>
91+
);
92+
}
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
import { Metadata } from "next";
2+
import Link from "next/link";
3+
import React from "react";
4+
import { ArrowLeftIcon } from "lucide-react";
5+
import { Button } from "@/components/ui/button";
6+
import { Container } from "@/components/ui/container";
7+
import Heading from "@/components/ui/heading";
8+
import Subheading from "@/components/ui/subheading";
9+
import Paragraph from "@/components/ui/paragraph";
10+
import TelegramLinkButton from "@/components/telegram-link-button";
11+
import { DepositRateAnchor } from "@/components/deposit-rate-anchor";
12+
import { DepositRatesChart } from "@/components/deposit-rates-chart";
13+
import AdUnit from "@/components/ad-unit";
14+
import { META_OPEN_GRAPH, META_TWITTER } from "@/app/shared-metadata";
15+
import {
16+
DepositRateBank,
17+
Routes,
18+
TelegramChannel,
19+
TopicTitle,
20+
} from "@/lib/enums";
21+
22+
const title = "Syfe (Cash+ Guaranteed) Rates";
23+
const description =
24+
"Track Syfe Cash+ Guaranteed rate trends over the past 6 months, 1 year and 2 years.";
25+
const url = Routes.FixedDepositRatesSyfe;
26+
27+
export const metadata: Metadata = {
28+
title,
29+
description,
30+
alternates: {
31+
canonical: url,
32+
},
33+
openGraph: {
34+
...META_OPEN_GRAPH,
35+
title,
36+
description,
37+
url,
38+
},
39+
twitter: {
40+
...META_TWITTER,
41+
title,
42+
description,
43+
},
44+
};
45+
46+
export default function SyfeCashGuaranteedRates() {
47+
return (
48+
<Container>
49+
<div className="space-y-2">
50+
<Heading>{title}</Heading>
51+
<Subheading>{description}</Subheading>
52+
</div>
53+
<DepositRatesChart
54+
bank={DepositRateBank.SYFE}
55+
title="Syfe (Cash+ Guaranteed) Rate Trend"
56+
/>
57+
<Paragraph>
58+
The chart above shows recent Syfe Cash+ Guaranteed rate trend movement.
59+
You can use this to decide when to{" "}
60+
<DepositRateAnchor bank={DepositRateBank.SYFE} linkText="invest in" />{" "}
61+
Syfe Cash+ Guaranteed based on current yields.
62+
</Paragraph>
63+
<AdUnit />
64+
<Paragraph>
65+
<span className="font-medium">SG Alerts</span> is a free notification
66+
service that monitors fixed deposit rates and related low-risk
67+
alternatives in Singapore, including Syfe Cash+ Guaranteed, and sends
68+
Telegram notifications when rates go up.
69+
</Paragraph>
70+
<Paragraph>
71+
To get started, click the button below to join the Telegram channel and
72+
receive updates.
73+
</Paragraph>
74+
<div className="sticky bottom-6 z-50 mt-8 text-center">
75+
<TelegramLinkButton
76+
channel={TelegramChannel.FixedDepositRates}
77+
linkText="Subscribe Now"
78+
className="shadow-md"
79+
topicTitle={TopicTitle.FixedDepositRates}
80+
/>
81+
</div>
82+
<div className="mt-4 text-center">
83+
<Button variant="secondary" asChild>
84+
<Link href={Routes.FixedDepositRates}>
85+
<ArrowLeftIcon className="mr-2 h-4 w-4" />
86+
Go Back
87+
</Link>
88+
</Button>
89+
</div>
90+
</Container>
91+
);
92+
}

lib/constants.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,9 @@ export const DEPOSIT_RATES_BANK_LINKS: Partial<Record<string, string>> = {
140140
[DepositRateBank.OCBC]: Routes.FixedDepositRatesOcbc,
141141
[DepositRateBank.HSBC]: Routes.FixedDepositRatesHsbc,
142142
[DepositRateBank.CITIBANK]: Routes.FixedDepositRatesCitibank,
143+
[DepositRateBank.GXS]: Routes.FixedDepositRatesGxs,
144+
[DepositRateBank.SYFE]: Routes.FixedDepositRatesSyfe,
145+
[DepositRateBank.MARIBANK]: Routes.FixedDepositRatesMaribank,
143146
[DepositRateBank.T_BILLS]: Routes.FixedDepositRatesTBills,
144147
[DepositRateBank.SSB]: Routes.FixedDepositRatesSsb,
145148
};

lib/enums.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,9 @@ export enum Routes {
4343
FixedDepositRatesOcbc = "/topics/fixed-deposit-rates/ocbc/",
4444
FixedDepositRatesHsbc = "/topics/fixed-deposit-rates/hsbc/",
4545
FixedDepositRatesCitibank = "/topics/fixed-deposit-rates/citibank/",
46+
FixedDepositRatesGxs = "/topics/fixed-deposit-rates/gxs/",
47+
FixedDepositRatesSyfe = "/topics/fixed-deposit-rates/syfe/",
48+
FixedDepositRatesMaribank = "/topics/fixed-deposit-rates/maribank/",
4649
FixedDepositRatesTBills = "/topics/fixed-deposit-rates/treasury-bills/",
4750
FixedDepositRatesSsb = "/topics/fixed-deposit-rates/singapore-savings-bonds/",
4851
SingaporeAirlinesFlights = "/topics/singapore-airlines-flights/",

0 commit comments

Comments
 (0)