+ Stake
+ xREF to help your favorite MemeToken earn higher farming yields, While
+ also receiving rewards from the Meme community.
+
+ ),
+ title: 'Vote By xRef',
+ },
+ {
+ content: (
+
+ Donate
+ your meme token to stakers of xRef, attracting more xRef holders to
+ stake their xRef into that MemeToken.
+
+ ),
+ title: 'How show love for voters?',
+ },
+ {
+ content: (
+
+ Stake
+ your meme token to help your favorite MemeToken earn higher farming
+ yields.
+
+ ),
+ title: '',
+ },
+ {
+ content: (
+
+ Your staked MemeTokens will be displayed here.
+
+ ),
+ title: '',
+ },
+ {
+ content: (
+
+ Unstaking requires a 5-day wait.Click
+ Withdraw at the bottom
+ of the page after this period to reclaim your MemeToken.
+
+ The winner of the next round of MemeSeason has not been decided yet.
+ Voting for MemeToken at this time might result in wasting{' '}
+ {formatSeconds(delay_withdraw_sec)} to withdraw it
+
+
+ );
+}
diff --git a/src/config/memeConfig.tsx b/src/config/memeConfig.tsx
new file mode 100644
index 000000000..25a3cf8a3
--- /dev/null
+++ b/src/config/memeConfig.tsx
@@ -0,0 +1,60 @@
+export const memeComingSoonJson = [
+ {
+ id: 'dragonsoultoken.near',
+ title: 'DGS',
+ introduce: `DGS is the exclusive token of DragonWorld game.
+ DragonWorld integrates the excellent elements of World of Warcraft and
+ Palworld, including dragon growth, dragon adventures, single and multiplayer
+ dungeons, dragon mining, dragon production farms, and a series of other interesting elements.`,
+ amount: '10000000',
+ airdropTime: 'June 30',
+ rules: `1-30: 150000 DGS\n31-100: 50000 DGS\n101-200: 20000 DGS`,
+ isShow: false,
+ },
+ {
+ id: 'edge-fast.near',
+ title: '$FAST',
+ introduce: `$FAST is the rewards and utility token in the Edge Video AI economy. Interact with TV content and participate in live AI-generated quizzes to be rewarded with virtual points that can be exchanged for $FAST token.`,
+ amount: '?',
+ airdropTime: '?',
+ rules: `Wallet must stake all 4: LONK, NEKO, BLACKDRAGON, SHITZU meme coins on Ref Finance and be in the top 200 stakers across all pools. Equal airdrop for all in top 200, there are no multipliers`,
+ isShow: false,
+ },
+ // {
+ // icon: ShillGpt(),
+ // title: 'shillGpt',
+ // introduce: `Lorem ipsum dolor sit amet consectetur adipisicing elit. At
+ // enim exercitationem veniam eos voluptatum pariatur culpa,
+ // ratione qui quo sunt ipsa labore ullam.`,
+ // amount: '88,445,820,340.00',
+ // amountDollar: '$6.27M',
+ // airdropTime: '4.26-5.26/2024',
+ // rules: `Lorem, ipsum dolor sit amet consectetur adipisicing elit.
+ // At ea corporis, vero unde modi perferendis? Velit
+ // eligendi, nesciunt ipsa sequi voluptatum, non nemo,
+ // architecto adipisci blanditiis nostrum ex accusantium
+ // harum?Lorem ipsum dolor sit amet consectetur adipisicing
+ // elit. Suscipit distinctio iste provident facere a possimus
+ // numquam officia nostrum ut cumque aperiam repellat quidem
+ // ex adipisci, quod ad eum dignissimos placeat.`,
+ // isShow: false,
+ // },
+ // {
+ // icon: UwonGreen(),
+ // title: 'Uwon',
+ // introduce: `Lorem ipsum dolor sit amet consectetur adipisicing elit. At
+ // ratione qui quo sunt ipsa labore ullam.`,
+ // amount: '88,445,820,340.00',
+ // amountDollar: '$6.27M',
+ // airdropTime: '4.26-5.26/2024',
+ // rules: `Lorem, ipsum dolor sit amet consectetur adipisicing elit.
+ // At ea corporis, vero unde modi perferendis? Velit
+ // eligendi, nesciunt ipsa sequi voluptatum, non nemo,
+ // architecto adipisci blanditiis nostrum ex accusantium
+ // harum?Lorem ipsum dolor sit amet consectetur adipisicing
+ // elit. Suscipit distinctio iste provident facere a possimus
+ // numquam officia nostrum ut cumque aperiam repellat quidem
+ // ex adipisci, quod ad eum dignissimos placeat.`,
+ // isShow: false,
+ // },
+];
diff --git a/src/pages/MemeAirdropListForMobile.tsx b/src/pages/MemeAirdropListForMobile.tsx
new file mode 100644
index 000000000..4cdada9c5
--- /dev/null
+++ b/src/pages/MemeAirdropListForMobile.tsx
@@ -0,0 +1,157 @@
+import React, { useState, useEffect, useContext } from 'react';
+import Modal from 'react-modal';
+import { ModalClose } from '../components/icon';
+import { memeComingSoonJson } from '../config/memeConfig';
+import { useHistory } from 'react-router-dom';
+import { ftGetTokenMetadata } from '../services/ft-contract';
+import CustomTooltip from '../components/customTooltip/customTooltip';
+import { Goback, RuleIcon, RuleTips } from '../components/meme/icons';
+export default function MemeComingSoon() {
+ const [icons, setIcons] = useState({});
+ //
+ const [isShowModal, setIsShowModal] = useState(false);
+ //
+ const [selectListItem, setSelectListItem] = useState(null);
+ //
+ const history = useHistory();
+ //
+ useEffect(() => {
+ window.scrollTo({
+ top: 0,
+ });
+ fetchIcons();
+ }, []);
+
+ const fetchIcons = async () => {
+ const newIcons = {};
+ const promises = memeComingSoonJson.map(async (item) => {
+ const iconData = await ftGetTokenMetadata(item.id);
+ newIcons[item.id] = iconData.icon;
+ });
+
+ await Promise.all(promises);
+ setIcons(newIcons);
+ };
+ const Tip = `
+
+ The airdropped tokens below are not investment advice.
+
`;
+ return (
+
+ {/* title */}
+
+
history.push('/meme')}>
+
+
+
Airdrop Announcement
+
+
+
+
+
+
+ {/* air drop list */}
+ {memeComingSoonJson.map((item, index) => {
+ return (
+