diff --git a/package.json b/package.json
index d248ac8e10..05078338ab 100644
--- a/package.json
+++ b/package.json
@@ -149,7 +149,6 @@
"react-native-paper": "^4.12.5",
"react-native-pell-rich-editor": "^1.8.8",
"react-native-pie-chart": "^3.0.1",
- "react-native-popover-view": "^5.1.8",
"react-native-popup-menu": "^0.16.1",
"react-native-qrcode-svg": "^6.2.0",
"react-native-reanimated": "^3.6.2",
diff --git a/packages/components/BoxDetailTeritori/BoxDetailTeritori.tsx b/packages/components/BoxDetailTeritori/BoxDetailTeritori.tsx
deleted file mode 100644
index aae1147747..0000000000
--- a/packages/components/BoxDetailTeritori/BoxDetailTeritori.tsx
+++ /dev/null
@@ -1,29 +0,0 @@
-import React from "react";
-
-import { neutral77 } from "../../utils/style/colors";
-import { fontSemibold12, fontSemibold14 } from "../../utils/style/fonts";
-import { layout } from "../../utils/style/layout";
-import { BrandText } from "../BrandText";
-import { TertiaryBox } from "../boxes/TertiaryBox";
-
-export const BoxDetailTeritori: React.FC<{
- title: string;
- descripation: string;
-}> = ({ title, descripation }) => {
- return (
-
-
- {title}
-
-
- {descripation}
-
-
- );
-};
diff --git a/packages/components/FilePreview/AssetsPagination/AssetsPagination.tsx b/packages/components/FilePreview/AssetsPagination/AssetsPagination.tsx
deleted file mode 100644
index bae8529296..0000000000
--- a/packages/components/FilePreview/AssetsPagination/AssetsPagination.tsx
+++ /dev/null
@@ -1,50 +0,0 @@
-import React from "react";
-import { View } from "react-native";
-
-import { LeftContainer } from "./LeftContainer";
-import { PaginationProps } from "./PaginationProps.type";
-import { RightContainer } from "./RightContainer";
-import { layout } from "../../../utils/style/layout";
-import { SpacerRow } from "../../spacer";
-
-export const AssetsPagination = ({
- currentPage,
- maxPage,
- onChangePage,
-}: PaginationProps) => {
- const handleChangePage = (pageIndex: number) => {
- if (pageIndex < 0) {
- pageIndex = 0;
- } else if (pageIndex >= maxPage) {
- pageIndex = maxPage - 1;
- }
- if (pageIndex !== currentPage) {
- onChangePage(pageIndex);
- }
- };
-
- return (
-
-
-
-
-
-
-
- );
-};
diff --git a/packages/components/FilePreview/AssetsPagination/LeftContainer.tsx b/packages/components/FilePreview/AssetsPagination/LeftContainer.tsx
deleted file mode 100644
index 1cf6c0a19a..0000000000
--- a/packages/components/FilePreview/AssetsPagination/LeftContainer.tsx
+++ /dev/null
@@ -1,90 +0,0 @@
-import React from "react";
-import { TextInput, View } from "react-native";
-
-import { PaginationProps } from "./PaginationProps.type";
-import {
- neutral17,
- neutral77,
- secondaryColor,
-} from "../../../utils/style/colors";
-import { fontSemibold14 } from "../../../utils/style/fonts";
-import { layout } from "../../../utils/style/layout";
-import { BrandText } from "../../BrandText";
-import { SEARCH_BAR_INPUT_HEIGHT } from "../../Search/SearchBarInput";
-import { TertiaryBox } from "../../boxes/TertiaryBox";
-
-export const LeftContainer = ({
- currentPage,
- maxPage,
- onChangePage,
-}: PaginationProps) => {
- return (
-
-
-
- Page {currentPage + 1} of {maxPage}
-
-
-
-
- | Go to page:
-
-
- {
- onChangePage(+value.nativeEvent.text - 1);
- }}
- />
-
-
-
- );
-};
diff --git a/packages/components/FilePreview/AssetsPagination/PaginationBlock.tsx b/packages/components/FilePreview/AssetsPagination/PaginationBlock.tsx
deleted file mode 100644
index 3adaecd8b0..0000000000
--- a/packages/components/FilePreview/AssetsPagination/PaginationBlock.tsx
+++ /dev/null
@@ -1,23 +0,0 @@
-import React from "react";
-import { TouchableOpacity } from "react-native";
-
-import { PaginationBlockProps } from "./PaginationProps.type";
-import { SVG } from "../../SVG";
-import { TertiaryBox } from "../../boxes/TertiaryBox";
-
-export const PaginationBlock = ({ source, onPress }: PaginationBlockProps) => {
- return (
- onPress()}>
-
-
-
-
- );
-};
diff --git a/packages/components/FilePreview/AssetsPagination/PaginationProps.type.ts b/packages/components/FilePreview/AssetsPagination/PaginationProps.type.ts
deleted file mode 100644
index dba5ddc9af..0000000000
--- a/packages/components/FilePreview/AssetsPagination/PaginationProps.type.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { SvgProps } from "react-native-svg";
-
-export interface PaginationProps {
- currentPage: number;
- maxPage: number;
- onChangePage: (page: number) => void;
-}
-
-export interface PaginationBlockProps {
- source: React.FC | string;
- onPress: () => void;
-}
diff --git a/packages/components/FilePreview/AssetsPagination/RightContainer.tsx b/packages/components/FilePreview/AssetsPagination/RightContainer.tsx
deleted file mode 100644
index 45656162b3..0000000000
--- a/packages/components/FilePreview/AssetsPagination/RightContainer.tsx
+++ /dev/null
@@ -1,137 +0,0 @@
-import React from "react";
-import { TouchableOpacity, View } from "react-native";
-
-import { PaginationBlock } from "./PaginationBlock";
-import { PaginationProps } from "./PaginationProps.type";
-import chevronLeftDoubleSVG from "../../../../assets/icons/chevron-left-double.svg";
-import chevronLeftSVG from "../../../../assets/icons/chevron-left.svg";
-import chevronRightDoubleSVG from "../../../../assets/icons/chevron-right-double.svg";
-import chevronRightSVG from "../../../../assets/icons/chevron-right.svg";
-import { primaryColor } from "../../../utils/style/colors";
-import { fontSemibold14 } from "../../../utils/style/fonts";
-import { layout } from "../../../utils/style/layout";
-import { BrandText } from "../../BrandText";
-import { TertiaryBox } from "../../boxes/TertiaryBox";
-import { SpacerRow } from "../../spacer";
-
-export const RightContainer = ({
- currentPage,
- maxPage,
- onChangePage,
-}: PaginationProps) => {
- return (
-
-
- onChangePage(0)}
- source={chevronLeftDoubleSVG}
- />
-
-
- onChangePage(currentPage - 1)}
- source={chevronLeftSVG}
- />
-
-
-
- {
- onChangePage(
- currentPage + 1 >= maxPage ? currentPage - 1 : currentPage,
- );
- }}
- >
-
-
- {currentPage + 1 >= maxPage ? currentPage : currentPage + 1}
-
-
-
-
-
-
-
- {
- onChangePage(
- currentPage + 2 > maxPage ? currentPage : currentPage + 1,
- );
- }}
- >
-
-
- {currentPage + 2 > maxPage ? maxPage : currentPage + 2}
-
-
-
-
-
-
- onChangePage(currentPage + 1)}
- source={chevronRightSVG}
- />
-
-
- onChangePage(maxPage - 1)}
- source={chevronRightDoubleSVG}
- />
-
-
- );
-};
diff --git a/packages/components/FilePreview/EditableAudioPreview.tsx b/packages/components/FilePreview/EditableAudioPreview.tsx
index 9d2909fc98..09baf409f4 100644
--- a/packages/components/FilePreview/EditableAudioPreview.tsx
+++ b/packages/components/FilePreview/EditableAudioPreview.tsx
@@ -26,7 +26,7 @@ import { LocalFileData } from "../../utils/types/files";
import { BrandText } from "../BrandText";
import { OptimizedImage } from "../OptimizedImage";
import { SVG } from "../SVG";
-import { FileUploader } from "../fileUploader";
+import { FileUploader } from "../inputs/fileUploader";
import { SelectPicture } from "../mini/SelectPicture";
interface AudioPreviewProps {
diff --git a/packages/components/FilePreview/SelectedFilesPreview/ItemView.tsx b/packages/components/FilePreview/SelectedFilesPreview/ItemView.tsx
deleted file mode 100644
index c200e1cf42..0000000000
--- a/packages/components/FilePreview/SelectedFilesPreview/ItemView.tsx
+++ /dev/null
@@ -1,63 +0,0 @@
-import React from "react";
-import { TouchableOpacity, Image } from "react-native";
-
-import { secondaryColor } from "../../../utils/style/colors";
-import { fontSemibold13 } from "../../../utils/style/fonts";
-import { layout } from "../../../utils/style/layout";
-import { BrandText } from "../../BrandText";
-import { PrimaryBox } from "../../boxes/PrimaryBox";
-
-export const ItemView = ({
- label,
- uri,
- onPress,
-}: {
- label: number;
- uri: string;
- onPress: () => void;
-}) => {
- return (
-
-
-
-
-
-
-
- {label}
-
-
-
- );
-};
diff --git a/packages/components/FilePreview/SelectedFilesPreview/SelectedFilesPreview.tsx b/packages/components/FilePreview/SelectedFilesPreview/SelectedFilesPreview.tsx
deleted file mode 100644
index ce164b8719..0000000000
--- a/packages/components/FilePreview/SelectedFilesPreview/SelectedFilesPreview.tsx
+++ /dev/null
@@ -1,104 +0,0 @@
-import React, { useEffect, useState } from "react";
-import { View } from "react-native";
-
-import { ItemView } from "./ItemView";
-import { neutral33, neutral55 } from "../../../utils/style/colors";
-import { fontSemibold20 } from "../../../utils/style/fonts";
-import { LocalFileData } from "../../../utils/types/files";
-import { BrandText } from "../../BrandText";
-import { PrimaryBox } from "../../boxes/PrimaryBox";
-import { SpacerColumn } from "../../spacer";
-import { AssetsPagination } from "../AssetsPagination/AssetsPagination";
-
-const RowSplitValue = 7;
-const itemsPerPage = 14; // Number of items to display per page
-
-export const SelectedFilesPreview: React.FC<{
- assets: LocalFileData[];
- onSelect: (item: LocalFileData) => void;
-}> = ({ assets, onSelect }) => {
- const [currentPage, setCurrentPage] = useState(0);
- const [totalPage, setTotalPage] = useState(1);
-
- useEffect(() => {
- if (assets) {
- setTotalPage(Math.ceil(assets.length / itemsPerPage));
- }
- }, [assets]);
-
- const indexOfLastItem = currentPage * itemsPerPage + itemsPerPage;
- const indexOfFirstItem = indexOfLastItem - itemsPerPage;
- const currentItems = assets.slice(indexOfFirstItem, indexOfLastItem);
-
- return (
-
-
- {currentItems.length > 0 ? (
- <>
-
- {currentItems.slice(0, RowSplitValue).map((item, index) => (
- {
- onSelect(item);
- }}
- />
- ))}
-
-
- {currentItems.slice(RowSplitValue).map((item, index) => (
- {
- onSelect(item);
- }}
- />
- ))}
-
- >
- ) : (
-
-
- Select assets to preview
-
-
- )}
-
- {assets.length > 0 && (
-
- setCurrentPage(page)}
- />
-
-
- )}
-
- );
-};
diff --git a/packages/components/HeaderContent/HeaderContent.tsx b/packages/components/HeaderContent/HeaderContent.tsx
deleted file mode 100644
index 2282ad88b3..0000000000
--- a/packages/components/HeaderContent/HeaderContent.tsx
+++ /dev/null
@@ -1,28 +0,0 @@
-import React from "react";
-import { View, ViewStyle } from "react-native";
-
-import { neutral77 } from "../../utils/style/colors";
-import { fontSemibold15 } from "../../utils/style/fonts";
-import { layout } from "../../utils/style/layout";
-import { BrandText } from "../BrandText";
-
-export const HeaderContent: React.FC<{
- header: string;
- children: React.ReactNode;
- style?: ViewStyle;
-}> = ({ header, children, style }) => {
- return (
-
-
- {header}
-
- {children}
-
- );
-};
-
-const listToggle: ViewStyle = {
- flexDirection: "row",
- alignItems: "center",
- marginTop: layout.spacing_x1_5,
-};
diff --git a/packages/components/NetworkSelector/CustomNetworkSelector.tsx b/packages/components/NetworkSelector/CustomNetworkSelector.tsx
deleted file mode 100644
index 719e07ea21..0000000000
--- a/packages/components/NetworkSelector/CustomNetworkSelector.tsx
+++ /dev/null
@@ -1,98 +0,0 @@
-import React from "react";
-import { StyleProp, TouchableOpacity, View, ViewStyle } from "react-native";
-
-import { NetworkSelectorMenu } from "./NetworkSelectorMenu";
-import chevronDownSVG from "../../../assets/icons/chevron-down.svg";
-import chevronUpSVG from "../../../assets/icons/chevron-up.svg";
-import { useDropdowns } from "../../hooks/useDropdowns";
-import { useSelectedNetworkInfo } from "../../hooks/useSelectedNetwork";
-import { NetworkFeature, NetworkKind } from "../../networks";
-import { neutral17, neutral77, secondaryColor } from "../../utils/style/colors";
-import { fontSemibold14 } from "../../utils/style/fonts";
-import { layout } from "../../utils/style/layout";
-import { BrandText } from "../BrandText";
-import { SVG } from "../SVG";
-import { TertiaryBox } from "../boxes/TertiaryBox";
-import { Label } from "../inputs/TextInputCustom";
-
-export const CustomNetworkSelector: React.FC<{
- label: string;
- style?: StyleProp;
- forceNetworkId?: string;
- forceNetworkKind?: NetworkKind;
- forceNetworkFeatures?: NetworkFeature[];
-}> = ({
- style,
- forceNetworkId,
- forceNetworkKind,
- forceNetworkFeatures,
- label,
-}) => {
- const [isDropdownOpen, setDropdownState, ref] = useDropdowns();
- const selectedNetworkInfo = useSelectedNetworkInfo();
-
- return (
-
-
-
-
- setDropdownState()}
- >
-
- {selectedNetworkInfo?.displayName}
-
-
-
-
-
- {isDropdownOpen && (
- {}}
- optionsMenuwidth={416}
- style={{ width: "100%", marginTop: layout.spacing_x0_75 }}
- forceNetworkId={forceNetworkId}
- forceNetworkKind={forceNetworkKind}
- forceNetworkFeatures={forceNetworkFeatures}
- />
- )}
-
- );
-};
diff --git a/packages/components/TopMenu/TopMenuHighlightedNews.tsx b/packages/components/TopMenu/TopMenuHighlightedNews.tsx
index 247132d0a4..67ee8f9e8c 100644
--- a/packages/components/TopMenu/TopMenuHighlightedNews.tsx
+++ b/packages/components/TopMenu/TopMenuHighlightedNews.tsx
@@ -2,7 +2,7 @@ import React from "react";
import { Image } from "react-native";
import { TopMenuSection } from "./TopMenuSection";
-import { useBanners } from "../../hooks/useBanners";
+import { useBanners } from "../../hooks/marketing/useBanners";
import { useSelectedNetworkId } from "../../hooks/useSelectedNetwork";
import { web3ToWeb2URI } from "../../utils/ipfs";
import FlexCol from "../FlexCol";
diff --git a/packages/components/applicationTable/CollectionNameCell.tsx b/packages/components/applicationTable/CollectionNameCell.tsx
deleted file mode 100644
index 53e94760aa..0000000000
--- a/packages/components/applicationTable/CollectionNameCell.tsx
+++ /dev/null
@@ -1,55 +0,0 @@
-import { View, ViewStyle } from "react-native";
-
-import avaPNG from "../../../assets/default-images/ava.png";
-import checkBadgeSVG from "../../../assets/icons/certified.svg";
-import { useIsMobile } from "../../hooks/useIsMobile";
-import { fontSemibold11, fontSemibold13 } from "../../utils/style/fonts";
-import { layout } from "../../utils/style/layout";
-import { BrandText } from "../BrandText";
-import { OmniLink } from "../OmniLink";
-import { SVG } from "../SVG";
-import { RoundedGradientImage } from "../images/RoundedGradientImage";
-
-interface Props {
- rowData: any; // currently i don't know the data types will change it once i will work on functionality
- style: ViewStyle;
-}
-
-export const CollectionNameCell = ({ rowData, style }: Props) => {
- const isMobile = useIsMobile();
-
- return (
-
-
-
- {rowData.collectionNameData}
-
-
-
-
-
- );
-};
diff --git a/packages/components/applicationTable/InnerCellText.tsx b/packages/components/applicationTable/InnerCellText.tsx
deleted file mode 100644
index 5a08083680..0000000000
--- a/packages/components/applicationTable/InnerCellText.tsx
+++ /dev/null
@@ -1,63 +0,0 @@
-import { ReactNode } from "react";
-import { StyleProp, TextStyle, View, ViewStyle } from "react-native";
-
-import cryptoLogoSVG from "../../../assets/icons/crypto-logo.svg";
-import SolanaCircleSVG from "../../../assets/icons/networks/solana-circle.svg";
-import { useIsMobile } from "../../hooks/useIsMobile";
-import { secondaryColor } from "../../utils/style/colors";
-import { fontSemibold11, fontSemibold13 } from "../../utils/style/fonts";
-import { layout } from "../../utils/style/layout";
-import { BrandText } from "../BrandText";
-import { SVG } from "../SVG";
-
-export const InnerCellText: React.FC<{
- style?: StyleProp;
- textStyle?: StyleProp;
- children: ReactNode;
- isSolanaIcon?: boolean;
- isCryptoLogo?: boolean;
-}> = ({
- children,
- style,
- textStyle,
- isSolanaIcon = false,
- isCryptoLogo = false,
-}) => {
- const isMobile = useIsMobile();
- return (
-
- {isSolanaIcon && (
-
-
-
- )}
- {isCryptoLogo && (
-
-
-
- )}
-
- {children}
-
-
- );
-};
diff --git a/packages/components/applicationTable/LinkIconAndRedirect.tsx b/packages/components/applicationTable/LinkIconAndRedirect.tsx
deleted file mode 100644
index d7c75b9dd3..0000000000
--- a/packages/components/applicationTable/LinkIconAndRedirect.tsx
+++ /dev/null
@@ -1,36 +0,0 @@
-import {
- Linking,
- StyleProp,
- TouchableOpacity,
- View,
- ViewStyle,
-} from "react-native";
-
-import externalLinkSVG from "../../../assets/icons/external-link.svg";
-import { secondaryColor } from "../../utils/style/colors";
-import { layout } from "../../utils/style/layout";
-import { SVG } from "../SVG";
-
-export const LinkIconAndRedirect: React.FC<{
- style?: StyleProp;
- value: string;
-}> = ({ value, style }) => {
- return (
-
- {
- Linking.openURL(value);
- }}
- >
-
-
-
- );
-};
diff --git a/packages/components/applicationTable/PercentageVolumeCell.tsx b/packages/components/applicationTable/PercentageVolumeCell.tsx
deleted file mode 100644
index 37c5a466a8..0000000000
--- a/packages/components/applicationTable/PercentageVolumeCell.tsx
+++ /dev/null
@@ -1,46 +0,0 @@
-import { StyleProp, View, ViewStyle } from "react-native";
-
-import downArrowSVG from "../../../assets/icons/downArrow.svg";
-import upArrowSVG from "../../../assets/icons/upArrow.svg";
-import { useIsMobile } from "../../hooks/useIsMobile";
-import { errorColor, successColor } from "../../utils/style/colors";
-import { fontSemibold11, fontSemibold13 } from "../../utils/style/fonts";
-import { layout } from "../../utils/style/layout";
-import { BrandText } from "../BrandText";
-import { SVG } from "../SVG";
-
-export const PercentageVolumeCell: React.FC<{
- value: string;
- style?: StyleProp;
-}> = ({ value, style }) => {
- const isMobile = useIsMobile();
- const isPositive = value.includes("+");
-
- return (
-
- {isPositive ? : }
-
- {value}
-
-
- );
-};
diff --git a/packages/components/carousels/NewsCarouselSection.tsx b/packages/components/carousels/NewsCarouselSection.tsx
index 880e5cbf66..cebbd5babd 100644
--- a/packages/components/carousels/NewsCarouselSection.tsx
+++ b/packages/components/carousels/NewsCarouselSection.tsx
@@ -1,4 +1,3 @@
-import { useQuery } from "@tanstack/react-query";
import React, { useEffect, useRef } from "react";
import { View, TouchableOpacity } from "react-native";
import Carousel, { ICarouselInstance } from "react-native-reanimated-carousel";
@@ -8,13 +7,13 @@ import chevronRightSVG from "../../../assets/icons/chevron-right.svg";
import { News } from "../../api/marketplace/v1/marketplace";
import { useMaxResolution } from "../../hooks/useMaxResolution";
import { useSelectedNetworkId } from "../../hooks/useSelectedNetwork";
-import { getNetwork } from "../../networks";
-import { getMarketplaceClient } from "../../utils/backend";
import { FullWidthSeparator } from "../FullWidthSeparator";
import { SVG } from "../SVG";
import { Section } from "../Section";
import { NewsBox } from "../hub/NewsBox";
+import { useNews } from "@/hooks/marketing/useNews";
+
export const NewsCarouselSection: React.FC = () => {
const { width } = useMaxResolution();
const carouselRef = useRef(null);
@@ -62,22 +61,3 @@ export const NewsCarouselSection: React.FC = () => {
);
};
-
-const useNews = (networkId: string) => {
- const { data } = useQuery(
- ["news", networkId],
- async () => {
- const backendClient = getMarketplaceClient(networkId);
- if (!backendClient) {
- return [];
- }
- const network = getNetwork(networkId);
- const { news } = await backendClient.News({ testnet: network?.testnet });
- return news;
- },
- {
- staleTime: Infinity,
- },
- );
- return data;
-};
diff --git a/packages/components/fileUploader/FileUploader.web.tsx b/packages/components/fileUploader/FileUploader.web.tsx
deleted file mode 100644
index e121b56d69..0000000000
--- a/packages/components/fileUploader/FileUploader.web.tsx
+++ /dev/null
@@ -1,228 +0,0 @@
-import React, { FC, SyntheticEvent, useRef, useState } from "react";
-import { TouchableOpacity, View } from "react-native";
-
-import { FileUploaderProps } from "./FileUploader.type";
-import { formatFile } from "./formatFile";
-import uploadSVG from "../../../assets/icons/upload.svg";
-import { useFeedbacks } from "../../context/FeedbacksProvider";
-import {
- gradientColorBlue,
- gradientColorDarkerBlue,
- gradientColorTurquoise,
- neutral17,
- neutral77,
- withAlpha,
-} from "../../utils/style/colors";
-import { fontSemibold14 } from "../../utils/style/fonts";
-import { layout } from "../../utils/style/layout";
-import { BrandText } from "../BrandText";
-import { DeleteButton } from "../FilePreview/DeleteButton";
-import { SVG } from "../SVG";
-import { LegacyPrimaryBox } from "../boxes/LegacyPrimaryBox";
-import { GradientText } from "../gradientText";
-import { Label } from "../inputs/TextInputCustom";
-
-export const FileUploader: FC = ({
- label,
- style,
- fileImageStyle,
- onUpload,
- // multiple is not used at true for now, needs to refactor in parents
- multiple,
- mimeTypes,
- children,
- maxUpload,
- setIsLoading,
-}) => {
- const { setToastError } = useFeedbacks();
- const hiddenFileInput = useRef(null);
- const [file, setFile] = useState("");
-
- const handleFiles = async (files: File[]) => {
- const _files = multiple ? files : [files[0]];
- let supportedFiles = [...files].filter((file) =>
- mimeTypes?.includes(file.type),
- );
-
- if (maxUpload && supportedFiles.length) {
- supportedFiles = supportedFiles.slice(0, maxUpload);
- }
-
- if (supportedFiles.length === 0) {
- setToastError({
- title: "Unsupported file type.",
- message: "Sorry we couldn't upload file.",
- });
- return;
- } else if (multiple && supportedFiles.length !== _files.length) {
- setToastError({
- title: "Unsupported file type.",
- message: "Sorry we couldn't upload some files at the moment.",
- });
- }
- if (!multiple) {
- setFile(URL.createObjectURL(_files[0]));
- }
-
- const formattedFiles = await Promise.all(
- supportedFiles.map(async (file) => await formatFile(file)),
- );
-
- onUpload(formattedFiles);
- };
-
- const handleChange = async (event: SyntheticEvent) => {
- setIsLoading?.(true);
- const targetEvent = event.target as HTMLInputElement;
-
- if (targetEvent.files && targetEvent.files[0]) {
- await handleFiles(targetEvent?.files as unknown as File[]);
- }
- setIsLoading?.(false);
- };
-
- const handleClick = () => {
- hiddenFileInput?.current?.click?.();
- };
-
- const dropHandler = async (ev: any) => {
- setIsLoading?.(true);
- ev.preventDefault();
- if (ev.dataTransfer.items) {
- const files = [...ev.dataTransfer.items]
- .filter((item: any) => item.kind === "file")
- .map((item: any) => item.getAsFile());
- await handleFiles(files);
- } else {
- await handleFiles(ev.dataTransfer.files);
- }
- setIsLoading?.(false);
- };
-
- const dragOverHandler = (ev: SyntheticEvent) => {
- ev.preventDefault();
- };
-
- const InputComponent = (
-
- );
-
- if (children) {
- return (
- <>
- {children({ onPress: handleClick })}
- {InputComponent}
- >
- );
- }
-
- return (
- <>
-
- {!!label && }
-
-
-
-
- {InputComponent}
- >
- );
-};
diff --git a/packages/components/hub/HubLanding.tsx b/packages/components/hub/HubLanding.tsx
index e71475cbd7..5969401a57 100644
--- a/packages/components/hub/HubLanding.tsx
+++ b/packages/components/hub/HubLanding.tsx
@@ -11,7 +11,7 @@ import {
Sort,
SortDirection,
} from "../../api/marketplace/v1/marketplace";
-import { useBanners } from "../../hooks/useBanners";
+import { useBanners } from "../../hooks/marketing/useBanners";
import { useMaxResolution } from "../../hooks/useMaxResolution";
import { useSelectedNetworkId } from "../../hooks/useSelectedNetwork";
import { Link } from "../Link";
diff --git a/packages/components/inputs/FileUploaderSmall/FileUploaderSmall.type.ts b/packages/components/inputs/FileUploaderSmall/FileUploaderSmall.type.ts
index c0b28964e7..4e34f06d21 100644
--- a/packages/components/inputs/FileUploaderSmall/FileUploaderSmall.type.ts
+++ b/packages/components/inputs/FileUploaderSmall/FileUploaderSmall.type.ts
@@ -20,3 +20,7 @@ export interface FileUploaderSmallProps {
onPressDelete?: () => void;
disabled?: boolean;
}
+
+export interface FileUploaderSmallHandle {
+ resetFiles: () => void;
+}
diff --git a/packages/components/inputs/FileUploaderSmall/FileUploaderSmall.web.tsx b/packages/components/inputs/FileUploaderSmall/FileUploaderSmall.web.tsx
index a40451f0ec..6cda44ab67 100644
--- a/packages/components/inputs/FileUploaderSmall/FileUploaderSmall.web.tsx
+++ b/packages/components/inputs/FileUploaderSmall/FileUploaderSmall.web.tsx
@@ -1,7 +1,16 @@
-import React, { FC, SyntheticEvent, useRef, useState } from "react";
+import React, {
+ forwardRef,
+ SyntheticEvent,
+ useImperativeHandle,
+ useRef,
+ useState,
+} from "react";
import { View } from "react-native";
-import { FileUploaderSmallProps } from "./FileUploaderSmall.type";
+import {
+ FileUploaderSmallHandle,
+ FileUploaderSmallProps,
+} from "./FileUploaderSmall.type";
import { useFeedbacks } from "../../../context/FeedbacksProvider";
import { secondaryColor } from "../../../utils/style/colors";
import { fontSemibold14 } from "../../../utils/style/fonts";
@@ -10,173 +19,191 @@ import { BrandText } from "../../BrandText";
import { SVGorImageIcon } from "../../SVG/SVGorImageIcon";
import { PrimaryBox } from "../../boxes/PrimaryBox";
import { Label } from "../TextInputCustom";
+import { formatFile } from "../fileUploader/formatFile";
import addSVG from "@/assets/icons/add-circle.svg";
import filesSVG from "@/assets/icons/files.svg";
import { DeleteButton } from "@/components/FilePreview/DeleteButton";
import { OptimizedImage } from "@/components/OptimizedImage";
import { CustomPressable } from "@/components/buttons/CustomPressable";
-import { formatFile } from "@/components/fileUploader/formatFile";
import { SpacerRow } from "@/components/spacer";
import { pluralOrNot } from "@/utils/text";
import { LocalFileData } from "@/utils/types/files";
-export const FileUploaderSmall: FC = ({
- label,
- style,
- onUpload,
- multiple,
- mimeTypes,
- maxUpload,
- filesCount,
- setIsLoading,
- required,
- boxStyle,
- imageToShow,
- onPressDelete,
- disabled,
-}) => {
- const { setToast } = useFeedbacks();
- const hiddenFileInput = useRef(null);
- const [hovered, setHovered] = useState(false);
- const [addedFiles, setAddedFiles] = useState([]);
+export const FileUploaderSmall = forwardRef<
+ FileUploaderSmallHandle,
+ FileUploaderSmallProps
+>(
+ (
+ {
+ label,
+ style,
+ onUpload,
+ multiple,
+ mimeTypes,
+ maxUpload,
+ filesCount,
+ setIsLoading,
+ required,
+ boxStyle,
+ imageToShow,
+ onPressDelete,
+ disabled,
+ },
+ forwardRef,
+ ) => {
+ const { setToast } = useFeedbacks();
+ const hiddenFileInputRef = useRef(null);
+ const [hovered, setHovered] = useState(false);
+ const [addedFiles, setAddedFiles] = useState([]);
- const handleFiles = async (files: File[]) => {
- const _files = multiple ? files : [files[0]];
- let supportedFiles = [...files].filter((file) =>
- mimeTypes?.includes(file.type),
- );
- if (maxUpload && supportedFiles.length) {
- supportedFiles = supportedFiles.slice(0, maxUpload);
- }
+ useImperativeHandle(forwardRef, () => ({
+ resetFiles: () => {
+ if (hiddenFileInputRef.current) {
+ hiddenFileInputRef.current.value = "";
+ setAddedFiles([]);
+ }
+ },
+ }));
- if (
- supportedFiles.length === 0 ||
- (multiple && supportedFiles.length !== _files.length)
- ) {
- setToast({
- title: "Unsupported file type",
- duration: 5000,
- mode: "normal",
- type: "error",
- });
- return;
- }
- const formattedFiles = await Promise.all(
- supportedFiles.map(async (file) => await formatFile(file)),
- );
- setAddedFiles(formattedFiles);
- onUpload(formattedFiles);
- };
+ const handleFiles = async (files: File[]) => {
+ const _files = multiple ? files : [files[0]];
+ let supportedFiles = [...files].filter((file) =>
+ mimeTypes?.includes(file.type),
+ );
+ if (maxUpload && supportedFiles.length) {
+ supportedFiles = supportedFiles.slice(0, maxUpload);
+ }
- const handleChange = async (event: SyntheticEvent) => {
- setIsLoading?.(true);
- const targetEvent = event.target as HTMLInputElement;
+ if (
+ supportedFiles.length === 0 ||
+ (multiple && supportedFiles.length !== _files.length)
+ ) {
+ setToast({
+ title: "Unsupported file type",
+ duration: 5000,
+ mode: "normal",
+ type: "error",
+ });
+ return;
+ }
+ const formattedFiles = await Promise.all(
+ supportedFiles.map(async (file) => await formatFile(file)),
+ );
+ setAddedFiles(formattedFiles);
+ onUpload(formattedFiles);
+ };
- if (targetEvent.files && targetEvent.files[0]) {
- await handleFiles(targetEvent?.files as unknown as File[]);
- }
- setIsLoading?.(false);
- };
- const handleClick = () => {
- hiddenFileInput?.current?.click?.();
- };
+ const handleChange = async (event: SyntheticEvent) => {
+ setIsLoading?.(true);
+ const targetEvent = event.target as HTMLInputElement;
- const InputComponent = (
-
- );
+ if (targetEvent.files && targetEvent.files[0]) {
+ await handleFiles(targetEvent?.files as unknown as File[]);
+ }
+ setIsLoading?.(false);
+ };
+ const handleClick = () => {
+ hiddenFileInputRef?.current?.click?.();
+ };
- return (
- setHovered(true)}
- onHoverOut={() => setHovered(false)}
- onPress={handleClick}
- disabled={disabled}
- >
- {!!label && (
-
- )}
+ const InputComponent = (
+
+ );
- {imageToShow ? (
-
- {onPressDelete && (
-
- )}
-
-
- ) : (
-
-
- 0 ? filesSVG : addSVG}
- iconSize={32}
+ return (
+ setHovered(true)}
+ onHoverOut={() => setHovered(false)}
+ onPress={handleClick}
+ disabled={disabled}
+ >
+ {!!label && (
+
+ )}
+
+ {imageToShow ? (
+
+ {onPressDelete && (
+
+ )}
+
-
-
-
- {!multiple && filesCount && filesCount === addedFiles.length
- ? addedFiles[0].file.name
- : !multiple && !filesCount
- ? "Select file"
- : multiple && filesCount
- ? filesCount + ` ${pluralOrNot("file", filesCount)} selected`
- : multiple && !filesCount
- ? "Select files"
- : ""}
-
-
- )}
+
+ 0 ? filesSVG : addSVG}
+ iconSize={32}
+ />
+
- {InputComponent}
-
- );
-};
+
+
+ {!multiple && filesCount && filesCount === addedFiles.length
+ ? addedFiles[0].file.name
+ : !multiple && !filesCount
+ ? "Select file"
+ : multiple && filesCount
+ ? filesCount +
+ ` ${pluralOrNot("file", filesCount)} selected`
+ : multiple && !filesCount
+ ? "Select files"
+ : ""}
+
+
+ )}
+
+ {InputComponent}
+
+ );
+ },
+);
diff --git a/packages/components/fileUploader/FileUploader.tsx b/packages/components/inputs/fileUploader/FileUploader.tsx
similarity index 79%
rename from packages/components/fileUploader/FileUploader.tsx
rename to packages/components/inputs/fileUploader/FileUploader.tsx
index 6689f66e82..6d399ce211 100644
--- a/packages/components/fileUploader/FileUploader.tsx
+++ b/packages/components/inputs/fileUploader/FileUploader.tsx
@@ -2,7 +2,6 @@ import React, { useState } from "react";
import { View, Image, TouchableOpacity } from "react-native";
import { FileUploaderProps } from "./FileUploader.type";
-import uploadSVG from "../../../assets/icons/upload.svg";
import {
gradientColorBlue,
gradientColorDarkerBlue,
@@ -10,24 +9,34 @@ import {
neutral17,
neutral77,
withAlpha,
-} from "../../utils/style/colors";
-import { fontSemibold14 } from "../../utils/style/fonts";
-import { layout } from "../../utils/style/layout";
-import { BrandText } from "../BrandText";
-import { DeleteButton } from "../FilePreview/DeleteButton";
-import { SVG } from "../SVG";
-import { LegacyPrimaryBox } from "../boxes/LegacyPrimaryBox";
-import { GradientText } from "../gradientText";
-import { Label } from "../inputs/TextInputCustom";
+} from "../../../utils/style/colors";
+import { fontSemibold14 } from "../../../utils/style/fonts";
+import { layout } from "../../../utils/style/layout";
+import { BrandText } from "../../BrandText";
+import { DeleteButton } from "../../FilePreview/DeleteButton";
+import { SVG } from "../../SVG";
+import { LegacyPrimaryBox } from "../../boxes/LegacyPrimaryBox";
+import { GradientText } from "../../gradientText";
+import { Label } from "../TextInputCustom";
+
+import uploadSVG from "@/assets/icons/upload.svg";
//FIXME: Doesn't work for now => Only the .web version is used
-export const FileUploader: React.FC = ({ label, style }) => {
+export const FileUploader: React.FC = ({
+ label,
+ style,
+ required,
+}) => {
const [files, setFiles] = useState([]);
return (
- {!!label && }
+ {!!label && (
+
+ )}
void }) => React.ReactNode;
maxUpload?: number;
setIsLoading?: (value: boolean) => void;
+ required?: boolean;
}
diff --git a/packages/components/inputs/fileUploader/FileUploader.web.tsx b/packages/components/inputs/fileUploader/FileUploader.web.tsx
new file mode 100644
index 0000000000..76263b68e4
--- /dev/null
+++ b/packages/components/inputs/fileUploader/FileUploader.web.tsx
@@ -0,0 +1,236 @@
+import React, { FC, SyntheticEvent, useRef, useState } from "react";
+import { View } from "react-native";
+
+import { FileUploaderProps } from "./FileUploader.type";
+import { formatFile } from "./formatFile";
+import { useFeedbacks } from "../../../context/FeedbacksProvider";
+import {
+ neutral17,
+ neutral77,
+ secondaryColor,
+} from "../../../utils/style/colors";
+import { fontSemibold14 } from "../../../utils/style/fonts";
+import { layout } from "../../../utils/style/layout";
+import { BrandText } from "../../BrandText";
+import { DeleteButton } from "../../FilePreview/DeleteButton";
+import { SVG } from "../../SVG";
+import { GradientText } from "../../gradientText";
+import { Label } from "../TextInputCustom";
+
+import uploadSVG from "@/assets/icons/upload.svg";
+import { PrimaryBox } from "@/components/boxes/PrimaryBox";
+import { CustomPressable } from "@/components/buttons/CustomPressable";
+
+export const FileUploader: FC = ({
+ label,
+ style,
+ fileImageStyle,
+ onUpload,
+ // multiple is not used at true for now, needs to refactor in parents
+ multiple,
+ mimeTypes,
+ children,
+ maxUpload,
+ setIsLoading,
+ required,
+}) => {
+ const { setToast } = useFeedbacks();
+ const hiddenFileInput = useRef(null);
+ const [file, setFile] = useState("");
+ const [hovered, setHovered] = useState(false);
+
+ const handleFiles = async (files: File[]) => {
+ const _files = multiple ? files : [files[0]];
+ let supportedFiles = [...files].filter((file) =>
+ mimeTypes?.includes(file.type),
+ );
+
+ if (maxUpload && supportedFiles.length) {
+ supportedFiles = supportedFiles.slice(0, maxUpload);
+ }
+
+ if (
+ supportedFiles.length === 0 ||
+ (multiple && supportedFiles.length !== _files.length)
+ ) {
+ setToast({
+ title: "Unsupported file type",
+ duration: 5000,
+ mode: "normal",
+ type: "error",
+ });
+ return;
+ }
+ if (!multiple) {
+ setFile(URL.createObjectURL(_files[0]));
+ }
+
+ const formattedFiles = await Promise.all(
+ supportedFiles.map(async (file) => await formatFile(file)),
+ );
+
+ onUpload(formattedFiles);
+ };
+
+ const handleChange = async (event: SyntheticEvent) => {
+ setIsLoading?.(true);
+ const targetEvent = event.target as HTMLInputElement;
+
+ if (targetEvent.files && targetEvent.files[0]) {
+ await handleFiles(targetEvent?.files as unknown as File[]);
+ }
+ setIsLoading?.(false);
+ };
+
+ const handleClick = () => {
+ hiddenFileInput?.current?.click?.();
+ };
+
+ const dropHandler = async (ev: any) => {
+ setIsLoading?.(true);
+ ev.preventDefault();
+ if (ev.dataTransfer.items) {
+ const files = [...ev.dataTransfer.items]
+ .filter((item: any) => item.kind === "file")
+ .map((item: any) => item.getAsFile());
+ await handleFiles(files);
+ } else {
+ await handleFiles(ev.dataTransfer.files);
+ }
+ setIsLoading?.(false);
+ };
+
+ const dragOverHandler = (ev: SyntheticEvent) => {
+ ev.preventDefault();
+ };
+
+ const InputComponent = (
+
+ );
+
+ if (children) {
+ return (
+ <>
+ {children({ onPress: handleClick })}
+ {InputComponent}
+ >
+ );
+ }
+
+ return (
+ <>
+ setHovered(true)}
+ onHoverOut={() => setHovered(false)}
+ onPress={handleClick}
+ >
+ {!!label && (
+
+ )}
+
+
+ {InputComponent}
+ >
+ );
+};
diff --git a/packages/components/fileUploader/formatFile.ts b/packages/components/inputs/fileUploader/formatFile.ts
similarity index 78%
rename from packages/components/fileUploader/formatFile.ts
rename to packages/components/inputs/fileUploader/formatFile.ts
index 449bff02fb..ae50f50375 100644
--- a/packages/components/fileUploader/formatFile.ts
+++ b/packages/components/inputs/fileUploader/formatFile.ts
@@ -1,11 +1,11 @@
+import { getAudioData } from "../../../utils/audio";
import {
AUDIO_MIME_TYPES,
IMAGE_MIME_TYPES,
VIDEO_MIME_TYPES,
-} from "./../../utils/mime";
-import { getAudioData } from "../../utils/audio";
-import { FileType, LocalFileData } from "../../utils/types/files";
-import { getVideoData } from "../../utils/video";
+} from "../../../utils/mime";
+import { FileType, LocalFileData } from "../../../utils/types/files";
+import { getVideoData } from "../../../utils/video";
export const formatFile = async (file: File): Promise => {
let fileType: FileType = "file";
diff --git a/packages/components/fileUploader/index.ts b/packages/components/inputs/fileUploader/index.ts
similarity index 100%
rename from packages/components/fileUploader/index.ts
rename to packages/components/inputs/fileUploader/index.ts
diff --git a/packages/components/music/UploadMusicModal/UploadTrack.tsx b/packages/components/music/UploadMusicModal/UploadTrack.tsx
index c98a7cc2aa..5402837b9e 100644
--- a/packages/components/music/UploadMusicModal/UploadTrack.tsx
+++ b/packages/components/music/UploadMusicModal/UploadTrack.tsx
@@ -38,8 +38,8 @@ import { BrandText } from "../../BrandText";
import { EditableAudioPreview } from "../../FilePreview/EditableAudioPreview";
import { SVG } from "../../SVG";
import { PrimaryButton } from "../../buttons/PrimaryButton";
-import { FileUploader } from "../../fileUploader";
import { TextInputCustom } from "../../inputs/TextInputCustom";
+import { FileUploader } from "../../inputs/fileUploader";
import { FeedPostingProgressBar } from "../../loaders/FeedPostingProgressBar";
import { FeedFeeText } from "../../socialFeed/FeedFeeText";
import { SpacerColumn, SpacerRow } from "../../spacer";
diff --git a/packages/components/navigation/getNormalModeScreens.tsx b/packages/components/navigation/getNormalModeScreens.tsx
index daefa37c4d..018b0473b1 100644
--- a/packages/components/navigation/getNormalModeScreens.tsx
+++ b/packages/components/navigation/getNormalModeScreens.tsx
@@ -3,9 +3,6 @@ import React from "react";
import { platformScreens } from "./platformSpecific";
import { getNav, screenTitle } from "./util";
-import { AdministrationDashboardScreen } from "@/screens/AdministrationDashboard/AdministrationDashboardScreen";
-import { AllProjectAdministrationDashScreen } from "@/screens/AllProjectAdministrationDash/AllProjectAdministrationDashScreen";
-import { ApplicationRewiewScreen } from "@/screens/ApplicationRewiew/ApplicationRewiew";
import { BurnCapitalScreen } from "@/screens/BurnCapital/BurnCapitalScreen";
import { ComingSoonScreen } from "@/screens/ComingSoon/ComingSoon";
import { CoreDAOScreen } from "@/screens/CoreDAO/CoreDAOScreen";
@@ -19,11 +16,9 @@ import { GovernanceScreen } from "@/screens/Governance/GovernanceScreen";
import { GuardiansScreen } from "@/screens/Guardians/GuardiansScreen";
import { HashtagFeedScreen } from "@/screens/HashtagFeed/HashtagFeedScreen";
import { HomeScreen } from "@/screens/Home/HomeScreen";
-import { LaunchpadApplyScreen } from "@/screens/Launchpad/LaunchpadApplyScreen";
-import { LaunchpadCreateScreen } from "@/screens/Launchpad/LaunchpadCreateScreen";
-import { LaunchpadScreen } from "@/screens/Launchpad/LaunchpadScreen";
+import { LaunchpadApplyScreen } from "@/screens/Launchpad/LaunchpadApply/LaunchpadApplyScreen";
+import { LaunchpadScreen } from "@/screens/Launchpad/LaunchpadHome/LaunchpadScreen";
import { MintCollectionScreen } from "@/screens/Launchpad/MintCollectionScreen";
-import { LaunchpadApplicationsScreen } from "@/screens/LaunchpadApplications/LaunchpadApplicationsScreen";
import { LaunchpadERC20CreateSaleScreen } from "@/screens/LaunchpadERC20/LaunchpadERC20Sales/LaunchpadERC20CreateSaleScreen";
import { LaunchpadERC20SalesScreen } from "@/screens/LaunchpadERC20/LaunchpadERC20Sales/LaunchpadERC20SalesScreen";
import { LaunchpadERC20Screen } from "@/screens/LaunchpadERC20/LaunchpadERC20Screen";
@@ -53,7 +48,6 @@ import { ProjectsMakeRequestScreen } from "@/screens/Projects/ProjectsMakeReques
import { ProjectsManagerScreen } from "@/screens/Projects/ProjectsManagerScreen";
import { ProjectsPaymentScreen } from "@/screens/Projects/ProjectsPaymentScreen";
import { ProjectsScreen } from "@/screens/Projects/ProjectsScreen";
-import { ReadyLaunchpadApplicationsScreen } from "@/screens/ReadyLaunchpadApplications/ReadyLaunchpadApplicationsScreen";
import { RiotGameBreedingScreen } from "@/screens/RiotGame/RiotGameBreedingScreen";
import { RiotGameEnrollScreen } from "@/screens/RiotGame/RiotGameEnrollScreen";
import { RiotGameFightScreen } from "@/screens/RiotGame/RiotGameFightScreen";
@@ -131,47 +125,6 @@ export const getNormalModeScreens = ({ appMode }: { appMode: AppMode }) => {
component={RiotersFooterScreen}
options={{ header: () => null, title: screenTitle("Rioters Footer") }}
/>
- null,
- title: screenTitle("Administration Dashboard"),
- }}
- />
- null,
- title: screenTitle("Launchpad Applications"),
- }}
- />
- null,
- title: screenTitle("Ready Launchpad Applications"),
- }}
- />
- null,
- title: screenTitle("All Launchpad Applications"),
- }}
- />
- null,
- title: screenTitle("Application Review"),
- }}
- />
-
{
title: screenTitle("Launchpad (Apply)"),
}}
/>
- null,
- title: screenTitle("Launchpad (Apply)"),
- }}
- />
+
void;
- height?: number;
- style?: StyleProp;
-}> = ({ style, sortDirection, onChangeSortDirection, height = 48 }) => {
- const handlePress = () => {
- if (sortDirection === SortDirection.SORT_DIRECTION_DESCENDING) {
- onChangeSortDirection(SortDirection.SORT_DIRECTION_ASCENDING);
- } else {
- onChangeSortDirection(SortDirection.SORT_DIRECTION_DESCENDING);
- }
- };
-
- return (
-
-
-
-
-
- {sortDirection === SortDirection.SORT_DIRECTION_ASCENDING
- ? "Highest "
- : "Lowest "}
- Total Vol
-
-
-
-
-
- );
-};
diff --git a/packages/components/video/UploadVideoModal.tsx b/packages/components/video/UploadVideoModal.tsx
index 406414286c..3690abd5a0 100644
--- a/packages/components/video/UploadVideoModal.tsx
+++ b/packages/components/video/UploadVideoModal.tsx
@@ -44,8 +44,8 @@ import { OptimizedImage } from "../OptimizedImage";
import { SVG } from "../SVG";
import { CustomPressable } from "../buttons/CustomPressable";
import { PrimaryButton } from "../buttons/PrimaryButton";
-import { FileUploader } from "../fileUploader";
import { TextInputCustom } from "../inputs/TextInputCustom";
+import { FileUploader } from "../inputs/fileUploader";
import { FeedPostingProgressBar } from "../loaders/FeedPostingProgressBar";
import { SelectAudioVideo } from "../mini/SelectAudioVideo";
import { SelectPicture } from "../mini/SelectPicture";
diff --git a/packages/hooks/dao/useDAOProposalById.ts b/packages/hooks/dao/useDAOProposalById.ts
new file mode 100644
index 0000000000..9225fb2787
--- /dev/null
+++ b/packages/hooks/dao/useDAOProposalById.ts
@@ -0,0 +1,148 @@
+import { GnoJSONRPCProvider } from "@gnolang/gno-js-client";
+import { useQuery, useQueryClient } from "@tanstack/react-query";
+import { useCallback } from "react";
+
+import { useDAOFirstProposalModule } from "./useDAOProposalModules";
+import {
+ cosmwasmToAppProposal,
+ GnoDAOProposal,
+ gnoToAppProposal,
+} from "./useDAOProposals";
+
+import { useFeedbacks } from "@/context/FeedbacksProvider";
+import { DaoProposalSingleQueryClient } from "@/contracts-clients/dao-proposal-single/DaoProposalSingle.client";
+import {
+ NetworkKind,
+ mustGetNonSigningCosmWasmClient,
+ parseUserId,
+} from "@/networks";
+import { extractGnoJSONString } from "@/utils/gno";
+
+const daoProposalByIdQueryKey = (
+ daoId: string | undefined,
+ proposalId: number | undefined,
+) => ["dao-proposals", daoId, proposalId];
+
+export const useDAOProposalById = (
+ daoId: string | undefined,
+ proposalId: number | undefined,
+) => {
+ const { setToast } = useFeedbacks();
+ const [network, daoAddress] = parseUserId(daoId);
+ const { daoProposal: cosmWasmDAOProposal, ...cosmWasmOther } =
+ useCosmWasmDAOProposalById(daoId, proposalId);
+
+ const { data: gnoDAOProposal, ...gnoOther } = useQuery(
+ daoProposalByIdQueryKey(daoId, proposalId),
+ async () => {
+ try {
+ if (network?.kind !== NetworkKind.Gno)
+ throw new Error("Not a Gno network");
+ if (!proposalId) throw new Error("Missing proposal id");
+
+ const provider = new GnoJSONRPCProvider(network.endpoint);
+
+ const gnoProposal: GnoDAOProposal = extractGnoJSONString(
+ await provider.evaluateExpression(
+ daoAddress,
+ `getProposalJSON(0, ${proposalId})`,
+ ),
+ );
+
+ return gnoToAppProposal(gnoProposal);
+ } catch (err) {
+ const title =
+ "Failed to fetch the Gno DAO proposal\nThis proposal might not exist in this DAO";
+ const message = err instanceof Error ? err.message : `${err}`;
+ setToast({
+ title,
+ message,
+ type: "error",
+ mode: "normal",
+ });
+ console.error(title, message);
+ return null;
+ }
+ },
+ {
+ staleTime: Infinity,
+ enabled: !!(daoId && network?.kind === NetworkKind.Gno && proposalId),
+ },
+ );
+
+ if (network?.kind === NetworkKind.Gno) {
+ return {
+ daoProposal: gnoDAOProposal,
+ ...gnoOther,
+ };
+ }
+
+ return {
+ daoProposal: cosmWasmDAOProposal,
+ ...cosmWasmOther,
+ };
+};
+
+const useCosmWasmDAOProposalById = (
+ daoId: string | undefined,
+ proposalId: number | undefined,
+) => {
+ const { setToast } = useFeedbacks();
+ const [network] = parseUserId(daoId);
+ const networkId = network?.id;
+ const { daoFirstProposalModule } = useDAOFirstProposalModule(daoId);
+ const proposalModuleAddress = daoFirstProposalModule?.address;
+
+ const { data, ...other } = useQuery(
+ daoProposalByIdQueryKey(daoId, proposalId),
+ async () => {
+ try {
+ if (!networkId) throw new Error("Missing network id");
+ if (!proposalModuleAddress)
+ throw new Error("No proposal module address");
+ if (!proposalId) throw new Error("Missing proposal id");
+
+ const cosmwasmClient = await mustGetNonSigningCosmWasmClient(networkId);
+ const daoProposalClient = new DaoProposalSingleQueryClient(
+ cosmwasmClient,
+ proposalModuleAddress,
+ );
+
+ const daoProposal = await daoProposalClient.proposal({
+ proposalId,
+ });
+
+ return cosmwasmToAppProposal(daoProposal);
+ } catch (err) {
+ const title =
+ "Failed to fetch the Cosmos DAO proposal\nThis proposal might not exist in this DAO";
+ const message = err instanceof Error ? err.message : `${err}`;
+ setToast({
+ title,
+ message,
+ type: "error",
+ mode: "normal",
+ });
+ console.error(title, message);
+ return null;
+ }
+ },
+ {
+ staleTime: Infinity,
+ enabled: !!(networkId && proposalModuleAddress && proposalId),
+ },
+ );
+ return { daoProposal: data, ...other };
+};
+
+export const useInvalidateDAOProposalById = (
+ daoId: string | undefined,
+ proposalId: number | undefined,
+) => {
+ const queryClient = useQueryClient();
+ return useCallback(
+ () =>
+ queryClient.invalidateQueries(daoProposalByIdQueryKey(daoId, proposalId)),
+ [queryClient, daoId, proposalId],
+ );
+};
diff --git a/packages/hooks/dao/useDAOProposals.ts b/packages/hooks/dao/useDAOProposals.ts
index 1c144c2e2b..6ff82b99b0 100644
--- a/packages/hooks/dao/useDAOProposals.ts
+++ b/packages/hooks/dao/useDAOProposals.ts
@@ -31,7 +31,7 @@ type GnoProposalVotes = {
abstain: number;
};
-type GnoDAOProposal = {
+export type GnoDAOProposal = {
id: number;
title: string;
description: string;
@@ -51,7 +51,7 @@ export const useDAOProposals = (daoId: string | undefined) => {
const { daoProposals: cosmWasmDAOProposals, ...cosmWasmOther } =
useCosmWasmDAOProposals(daoId);
const { data: gnoDAOProposals, ...gnoOther } = useQuery(
- [daoProposalsQueryKey(daoId), NetworkKind.Gno],
+ daoProposalsQueryKey(daoId),
async () => {
if (network?.kind !== NetworkKind.Gno) return [];
const provider = new GnoJSONRPCProvider(network.endpoint);
@@ -67,47 +67,7 @@ export const useDAOProposals = (daoId: string | undefined) => {
for (let i = 0; i < gnoProposals.length; i++) {
const prop = gnoProposals[i];
- const title = prop.title;
- const description = prop.description;
- const status = prop.status.toLowerCase() as Status;
- const proposer = prop.proposer;
- const yesVotes = prop.votes.yes;
- const noVotes = prop.votes.no;
- const abstainVotes = prop.votes.abstain;
- const threshold =
- prop.threshold.thresholdQuorum.threshold.percent / 10000;
- const quorum = prop.threshold.thresholdQuorum.quorum.percent / 10000;
- const actions = prop.messages.map((m) => JSON.stringify(m));
- // TODO: render actions
- proposals.push({
- id: i,
- proposal: {
- title,
- description,
- votes: {
- yes: yesVotes.toString(),
- no: noVotes.toString(),
- abstain: abstainVotes.toString(),
- },
- allow_revoting: false,
- expiration: "TODO" as any,
- msgs: prop.messages.map((m) => ({
- ...m,
- gno: true,
- })),
- actions,
- proposer,
- start_height: prop.startHeight,
- status,
- threshold: {
- threshold_quorum: {
- threshold: { percent: `${threshold}` },
- quorum: { percent: `${quorum}` },
- },
- },
- total_power: prop.totalPower.toString(),
- },
- });
+ proposals.push(gnoToAppProposal(prop));
}
return proposals;
},
@@ -133,7 +93,7 @@ const useCosmWasmDAOProposals = (daoId: string | undefined) => {
const proposalModuleAddress = daoFirstProposalModule?.address;
const { data, ...other } = useQuery(
- [daoProposalsQueryKey(daoId), NetworkKind.Cosmos],
+ daoProposalsQueryKey(daoId),
async () => {
if (!networkId || !proposalModuleAddress) return null;
@@ -153,13 +113,7 @@ const useCosmWasmDAOProposals = (daoId: string | undefined) => {
});
if (listProposals.proposals.length === 0) break;
allProposals.push(
- ...listProposals.proposals.map((p) => ({
- ...p,
- proposal: {
- ...p.proposal,
- actions: [] as string[],
- },
- })),
+ ...listProposals.proposals.map((p) => cosmwasmToAppProposal(p)),
);
startAfter += listProposals.proposals.length;
}
@@ -178,3 +132,61 @@ export const useInvalidateDAOProposals = (daoId: string | undefined) => {
[queryClient, daoId],
);
};
+
+export const gnoToAppProposal = (proposal: GnoDAOProposal) => {
+ // TODO: render actions
+ const title = proposal.title;
+ const description = proposal.description;
+ const status = proposal.status.toLowerCase() as Status;
+ const proposer = proposal.proposer;
+ const yesVotes = proposal.votes.yes;
+ const noVotes = proposal.votes.no;
+ const abstainVotes = proposal.votes.abstain;
+ const threshold =
+ proposal.threshold.thresholdQuorum.threshold.percent / 10000;
+ const quorum = proposal.threshold.thresholdQuorum.quorum.percent / 10000;
+ const actions = proposal.messages.map((m) => JSON.stringify(m));
+
+ const appProposal: AppProposalResponse = {
+ id: proposal.id,
+ proposal: {
+ title,
+ description,
+ votes: {
+ yes: yesVotes.toString(),
+ no: noVotes.toString(),
+ abstain: abstainVotes.toString(),
+ },
+ allow_revoting: false,
+ expiration: "TODO" as any,
+ msgs: proposal.messages.map((m) => ({
+ ...m,
+ gno: true,
+ })),
+ actions,
+ proposer,
+ start_height: proposal.startHeight,
+ status,
+ threshold: {
+ threshold_quorum: {
+ threshold: { percent: `${threshold}` },
+ quorum: { percent: `${quorum}` },
+ },
+ },
+ total_power: proposal.totalPower.toString(),
+ },
+ };
+
+ return appProposal;
+};
+
+export const cosmwasmToAppProposal = (proposal: ProposalResponse) => {
+ const appPrpoposal: AppProposalResponse = {
+ ...proposal,
+ proposal: {
+ ...proposal.proposal,
+ actions: [] as string[],
+ },
+ };
+ return appPrpoposal;
+};
diff --git a/packages/hooks/useBanners.ts b/packages/hooks/marketing/useBanners.ts
similarity index 100%
rename from packages/hooks/useBanners.ts
rename to packages/hooks/marketing/useBanners.ts
diff --git a/packages/hooks/marketing/useNews.ts b/packages/hooks/marketing/useNews.ts
new file mode 100644
index 0000000000..88cdc1fd5d
--- /dev/null
+++ b/packages/hooks/marketing/useNews.ts
@@ -0,0 +1,23 @@
+import { useQuery } from "@tanstack/react-query";
+
+import { getNetwork } from "@/networks";
+import { getMarketplaceClient } from "@/utils/backend";
+
+export const useNews = (networkId: string) => {
+ const { data } = useQuery(
+ ["news", networkId],
+ async () => {
+ const backendClient = getMarketplaceClient(networkId);
+ if (!backendClient) {
+ return [];
+ }
+ const network = getNetwork(networkId);
+ const { news } = await backendClient.News({ testnet: network?.testnet });
+ return news;
+ },
+ {
+ staleTime: Infinity,
+ },
+ );
+ return data;
+};
diff --git a/packages/screens/AdministrationDashboard/AdministrationDashboardScreen.tsx b/packages/screens/AdministrationDashboard/AdministrationDashboardScreen.tsx
deleted file mode 100644
index 60365538f3..0000000000
--- a/packages/screens/AdministrationDashboard/AdministrationDashboardScreen.tsx
+++ /dev/null
@@ -1,217 +0,0 @@
-import React, { useState } from "react";
-import { TouchableOpacity, View, useWindowDimensions } from "react-native";
-
-import { ApplicationStatusCard } from "./component/ApplicationStatusCard";
-import { ApplicationTable } from "./component/ApplicationTable";
-import { CurrentlyHighlightedProject } from "./component/CurrentlyHighLightedProject";
-import { GenesisExplore } from "./component/GenesisExplore";
-
-import { BrandText } from "@/components/BrandText";
-import { ScreenContainer } from "@/components/ScreenContainer";
-import { SecondaryBox } from "@/components/boxes/SecondaryBox";
-import { Tabs } from "@/components/tabs/Tabs";
-import { useAppNavigation } from "@/hooks/navigation/useAppNavigation";
-import { primaryColor } from "@/utils/style/colors";
-import {
- fontSemibold13,
- fontSemibold20,
- fontSemibold28,
-} from "@/utils/style/fonts";
-import { layout } from "@/utils/style/layout";
-
-const MD_BREAKPOINT = 820;
-type TabsListType = "pendingApllications" | "pendingConfirmations";
-type SecTabsListType =
- | "highlightedNewsHero"
- | "upcomingProjectsCarousel"
- | "liveSaleinProgress";
-
-const dummyData = [
- {
- rank: 1,
- collectionNameData: "The R!ot",
- collectionNetwork: "teritori",
- TwitterURL: "https://www.lipsum.com/",
- DiscordURL: "https://www.lipsum.com/",
- expectedTotalSupply: 3000,
- expectedPublicMintPrice: "550 L",
- expectedMintDate: new Date(),
- },
- {
- rank: 2,
- collectionNameData: "throw back push chair",
- collectionNetwork: "solanaL",
- TwitterURL: "https://www.lipsum.com/",
- DiscordURL: "https://www.lipsum.com/",
- expectedTotalSupply: 3000,
- expectedPublicMintPrice: "550 L",
- expectedMintDate: new Date(),
- },
- {
- rank: 3,
- collectionNameData: "cachablesadly back push chair",
- collectionNetwork: "solanaL",
- TwitterURL: "https://www.lipsum.com/",
- DiscordURL: "https://www.lipsum.com/",
- expectedTotalSupply: 3000,
- expectedPublicMintPrice: "550 L",
- expectedMintDate: new Date(),
- },
-];
-
-export const AdministrationDashboardScreen: React.FC = () => {
- const navigation = useAppNavigation();
- const { width } = useWindowDimensions();
-
- const tabs = {
- pendingApllications: {
- name: "Pending Apllications",
- badgeCount: 32,
- },
- pendingConfirmations: {
- name: "Pending Confirmations",
- badgeCount: 42,
- },
- };
-
- const secTabs = {
- highlightedNewsHero: {
- name: "Highlighted News Hero",
- badgeCount: 3,
- },
- upcomingProjectsCarousel: {
- name: "Upcoming Projects Carousel",
- badgeCount: 12,
- },
- liveSaleinProgress: {
- name: "Live Sale in Progress",
- badgeCount: 52,
- },
- };
-
- const [selectedTab, setSelectedTab] = useState(
- "pendingApllications",
- );
-
- const [selectedSecTab, setSelectedSecTab] = useState(
- "highlightedNewsHero",
- );
-
- const [isEditHighlighted, setIsEditHighlighted] = useState(false);
-
- return (
- >}
- headerChildren={
- Administration Dashboard
- }
- responsive
- onBackPress={() => navigation.goBack()}
- >
-
-
-
- Launchpad Administration Overview
-
-
-
- = MD_BREAKPOINT ? "row" : "column",
- justifyContent: "center",
- }}
- >
- {}} //TODO: don't forget to rewrite onPress function if possible
- isReady={false}
- />
- {}} // TODO: don't forget to rewrite onPress function if possible
- style={{
- marginHorizontal:
- width >= MD_BREAKPOINT ? layout.spacing_x1_5 : 0,
- marginVertical: width >= MD_BREAKPOINT ? 0 : layout.spacing_x1_5,
- }}
- isReady={false}
- />
- navigation.navigate("ReadyLaunchpadApplications")}
- isReady
- />
-
-
-
-
-
-
-
-
- navigation.navigate("LaunchpadApplications")}
- >
-
-
- Load More
-
-
-
-
-
-
-
- {isEditHighlighted ? (
-
- ) : (
-
- )}
-
-
-
- );
-};
diff --git a/packages/screens/AdministrationDashboard/component/ApplicationStatusCard.tsx b/packages/screens/AdministrationDashboard/component/ApplicationStatusCard.tsx
deleted file mode 100644
index 6a06135acb..0000000000
--- a/packages/screens/AdministrationDashboard/component/ApplicationStatusCard.tsx
+++ /dev/null
@@ -1,70 +0,0 @@
-import React from "react";
-import { View, StyleProp, TouchableOpacity } from "react-native";
-
-import chevronRightSVG from "../../../../assets/icons/chevron-right.svg";
-
-import { BrandText } from "@/components/BrandText";
-import { SVG } from "@/components/SVG";
-import { BoxStyle } from "@/components/boxes/Box";
-import { PrimaryBox } from "@/components/boxes/PrimaryBox";
-import {
- neutral00,
- neutral11,
- neutral30,
- neutral44,
-} from "@/utils/style/colors";
-import { fontSemibold16, fontSemibold24 } from "@/utils/style/fonts";
-import { layout } from "@/utils/style/layout";
-
-export const ApplicationStatusCard: React.FC<{
- label: string;
- count: number;
- style?: StyleProp;
- onPress: () => void;
- isReady?: boolean;
-}> = ({ label, style, count, isReady, onPress }) => {
- return (
-
-
- {label}
-
- {count}
-
-
-
-
-
-
- );
-};
diff --git a/packages/screens/AdministrationDashboard/component/ApplicationTable.tsx b/packages/screens/AdministrationDashboard/component/ApplicationTable.tsx
deleted file mode 100644
index 4d1a4bf994..0000000000
--- a/packages/screens/AdministrationDashboard/component/ApplicationTable.tsx
+++ /dev/null
@@ -1,163 +0,0 @@
-import moment from "moment";
-import React from "react";
-import { FlatList, View } from "react-native";
-
-import dotsSVG from "../../../../assets/icons/dots.svg";
-
-import { SVG } from "@/components/SVG";
-import { CollectionNameCell } from "@/components/applicationTable/CollectionNameCell";
-import { InnerCellText } from "@/components/applicationTable/InnerCellText";
-import { LinkIconAndRedirect } from "@/components/applicationTable/LinkIconAndRedirect";
-import { TableHeader } from "@/components/table/TableHeader";
-import { TableColumns } from "@/components/table/utils";
-import { useIsMobile } from "@/hooks/useIsMobile";
-import { mineShaftColor } from "@/utils/style/colors";
-import { layout, screenContentMaxWidthLarge } from "@/utils/style/layout";
-
-const TABLE_COLUMNS: TableColumns = {
- rank: {
- label: "#",
- flex: 1,
- },
- collectionNameData: {
- label: "Collection Name",
- flex: 5,
- },
- collectionNetwork: {
- label: "Collection Network",
- flex: 3,
- },
- TwitterURL: {
- label: "Twitter URL",
- flex: 2,
- },
- DiscordURL: {
- label: "Discord URL",
- flex: 2,
- },
- expectedTotalSupply: {
- label: "Expected Total Supply",
- flex: 3,
- },
- expectedPublicMintPrice: {
- label: "Expected Public Mint Price",
- flex: 3,
- },
- expectedMintDate: {
- label: "Expected Mint Date",
- flex: 3,
- },
-};
-
-export const ApplicationTable: React.FC<{
- rows: any[]; // currently i don't know the data types will change it once i will work on functionality
-}> = ({ rows }) => {
- const isMobile = useIsMobile();
-
- return (
-
-
-
- }
- keyExtractor={(item) => item.id}
- style={{
- minHeight: 220,
- borderTopColor: mineShaftColor,
- borderTopWidth: 1,
- }}
- />
-
- );
-};
-
-const ApplicationRowData: React.FC<{ rowData: any }> = ({ rowData }) => {
- const isMobile = useIsMobile();
-
- return (
-
-
- {rowData.rank}
-
-
-
- {rowData["collectionNetwork"]}
-
- {!isMobile && (
- <>
-
-
-
- {rowData.expectedTotalSupply}
-
-
- {rowData.expectedPublicMintPrice}
-
-
-
- {moment(rowData.expectedMintDate).format("MMM D YYYY")}
-
-
-
- >
- )}
-
- );
-};
diff --git a/packages/screens/AdministrationDashboard/component/CarouselHero.tsx b/packages/screens/AdministrationDashboard/component/CarouselHero.tsx
deleted file mode 100644
index 4db2fd87a1..0000000000
--- a/packages/screens/AdministrationDashboard/component/CarouselHero.tsx
+++ /dev/null
@@ -1,91 +0,0 @@
-import React, { useRef, useState } from "react";
-import { useWindowDimensions, View, ViewStyle } from "react-native";
-import Carousel, { ICarouselInstance } from "react-native-reanimated-carousel";
-
-import guardianPng from "../../../../assets/default-images/guardian_1.png";
-
-import { OptimizedImage } from "@/components/OptimizedImage";
-import { neutral00, neutral44, secondaryColor } from "@/utils/style/colors";
-import { layout } from "@/utils/style/layout";
-
-const MD_BREAKPOINT = 820;
-
-const data: string[] = [guardianPng, guardianPng, guardianPng];
-
-export const CarouselHero = () => {
- const { width } = useWindowDimensions();
- const isBreakPoint = width >= MD_BREAKPOINT;
- const [currentPage, setCurrentPage] = useState(0);
- const carouselRef = useRef(null);
-
- return (
-
- g.enableTrackpadTwoFingerGesture(true)}
- onProgressChange={(_, absoluteProgress) => {
- setCurrentPage(Math.round(absoluteProgress));
- }}
- autoPlay
- pagingEnabled
- autoPlayInterval={7000}
- renderItem={({ item, index }) => (
-
- )}
- />
-
-
- {data.map((_, index) => (
-
- ))}
-
-
- );
-};
-
-const pagination: ViewStyle = {
- flexDirection: "row",
- justifyContent: "center",
- alignItems: "center",
- marginTop: layout.spacing_x1_5,
- position: "absolute",
- bottom: 10,
- backgroundColor: neutral00,
- padding: layout.spacing_x1,
- borderRadius: 100,
-};
-
-const paginationDot: ViewStyle = {
- width: 8,
- height: 4,
- borderRadius: 4,
- marginRight: 4,
- backgroundColor: neutral44,
-};
-
-const activeDot: ViewStyle = {
- width: 16,
- backgroundColor: secondaryColor,
-};
diff --git a/packages/screens/AdministrationDashboard/component/CurrentlyHighLightedProject.tsx b/packages/screens/AdministrationDashboard/component/CurrentlyHighLightedProject.tsx
deleted file mode 100644
index 764f120963..0000000000
--- a/packages/screens/AdministrationDashboard/component/CurrentlyHighLightedProject.tsx
+++ /dev/null
@@ -1,63 +0,0 @@
-import React from "react";
-import { TouchableOpacity, View, ViewStyle } from "react-native";
-
-import { GuardiansBox } from "./GuardiansBox";
-import blackCricleSVG from "../../../../assets/icons/black-check.svg";
-
-import { BrandText } from "@/components/BrandText";
-import { SVG } from "@/components/SVG";
-import { BoxStyle } from "@/components/boxes/Box";
-import { neutral17, neutralA3, primaryColor } from "@/utils/style/colors";
-import { fontSemibold13, fontSemibold14 } from "@/utils/style/fonts";
-import { layout } from "@/utils/style/layout";
-
-type Props = {
- setIsEditHighlighted: (val: boolean) => void;
-};
-
-export const CurrentlyHighlightedProject = ({
- setIsEditHighlighted,
-}: Props) => {
- return (
-
- setIsEditHighlighted(false)}
- style={{ alignSelf: "flex-start" }}
- >
-
-
-
- Save changes
-
-
-
-
-
- Select the desired collections to display and drag them in the desired
- order.
-
-
-
-
-
-
- );
-};
-
-const boxBtn: BoxStyle = {
- flexDirection: "row",
- alignSelf: "flex-start",
- borderRadius: 6,
- alignItems: "center",
- justifyContent: "center",
- paddingHorizontal: layout.spacing_x1_5,
- paddingVertical: layout.spacing_x1,
- backgroundColor: primaryColor,
- marginTop: layout.spacing_x3,
-};
-
-const marginVertical24: ViewStyle = {
- marginVertical: layout.spacing_x4,
-};
diff --git a/packages/screens/AdministrationDashboard/component/GenesisExplore.tsx b/packages/screens/AdministrationDashboard/component/GenesisExplore.tsx
deleted file mode 100644
index cb8768c79d..0000000000
--- a/packages/screens/AdministrationDashboard/component/GenesisExplore.tsx
+++ /dev/null
@@ -1,115 +0,0 @@
-import React from "react";
-import { TouchableOpacity, View, useWindowDimensions } from "react-native";
-
-import { CarouselHero } from "./CarouselHero";
-import penSVG from "../../../../assets/icons/pen.svg";
-
-import { BrandText } from "@/components/BrandText";
-import { SVG } from "@/components/SVG";
-import { PrimaryBox } from "@/components/boxes/PrimaryBox";
-import { SecondaryBox } from "@/components/boxes/SecondaryBox";
-import { GradientText } from "@/components/gradientText";
-import { useAppNavigation } from "@/hooks/navigation/useAppNavigation";
-import { neutral17, primaryColor } from "@/utils/style/colors";
-import {
- fontSemibold12,
- fontSemibold13,
- fontSemibold14,
- fontSemibold24,
-} from "@/utils/style/fonts";
-import { layout } from "@/utils/style/layout";
-
-const MD_BREAKPOINT = 820;
-const LG_BREAKPOINT = 1200;
-type Props = { setIsEditHighlighted: (val: boolean) => void };
-
-export const GenesisExplore = ({ setIsEditHighlighted }: Props) => {
- const navigation = useAppNavigation();
- const { width } = useWindowDimensions();
- const isBreakPoint = width >= MD_BREAKPOINT;
-
- return (
-
-
- setIsEditHighlighted(true)}
- style={{ alignSelf: "flex-start" }}
- >
-
-
-
-
-
- Edit Hero
-
-
-
-
-
-
- Genesis Guardians
-
- EXCLUSIVE GENESIS TERITORI COLLECTION
-
- navigation.navigate("AllProjectAdministrationDash")}
- >
-
-
- Explore collection
-
-
-
-
-
- {width >= LG_BREAKPOINT && }
-
-
- );
-};
diff --git a/packages/screens/AdministrationDashboard/component/GuardiansBox.tsx b/packages/screens/AdministrationDashboard/component/GuardiansBox.tsx
deleted file mode 100644
index 3fe2b6d49b..0000000000
--- a/packages/screens/AdministrationDashboard/component/GuardiansBox.tsx
+++ /dev/null
@@ -1,202 +0,0 @@
-import React, { useState } from "react";
-import {
- FlatList,
- ImageBackground,
- TouchableOpacity,
- View,
- useWindowDimensions,
- ViewStyle,
-} from "react-native";
-
-import { GuardiansList } from "./GuardiansList";
-import guardianPng from "../../../../assets/default-images/guardian_1.png";
-import addCircleSVG from "../../../../assets/icons/add-circle.svg";
-import dotSVG from "../../../../assets/icons/dot-more.svg";
-import downSVG from "../../../../assets/icons/down.svg";
-import trashSVG from "../../../../assets/icons/trash-white.svg";
-import upSVG from "../../../../assets/icons/up.svg";
-
-import { BrandText } from "@/components/BrandText";
-import { SVG } from "@/components/SVG";
-import { BoxStyle } from "@/components/boxes/Box";
-import { PrimaryBox } from "@/components/boxes/PrimaryBox";
-import { TertiaryBox } from "@/components/boxes/TertiaryBox";
-import { SearchInput } from "@/components/sorts/SearchInput";
-import { neutral33, neutral00 } from "@/utils/style/colors";
-import { fontSemibold14 } from "@/utils/style/fonts";
-
-const MD_BREAKPOINT = 820;
-
-export const GuardiansBox = () => {
- const { width } = useWindowDimensions();
-
- const [guardiansHandler, setGuardiansHandler] = useState([1, 2]);
- const [openedList, setOpenedList] = useState();
-
- return (
- = MD_BREAKPOINT ? "row" : "column" }}>
- {guardiansHandler?.map((d: number, index: number) => {
- return (
- <>
- = MD_BREAKPOINT ? "19%" : "100%" },
- ]}
- >
-
-
- {index + 1}
-
-
-
-
-
-
-
- setOpenedList((old) => (old === index ? -1 : index))
- }
- style={toggleBox}
- >
-
- Genesis Guardians
-
-
- {openedList === index ? (
-
- ) : (
-
- )}
-
-
- {openedList === index ? (
-
-
- {}} //TODO: don't forget to rewrite onPress function if possible
- />
- (
-
- )}
- keyExtractor={(item) => item.id}
- style={{
- marginTop: 16,
- marginLeft: 5,
- }}
- contentContainerStyle={{
- height: 180,
- }}
- />
-
-
- ) : (
-
-
-
-
-
- )}
-
-
- >
- );
- })}
- {guardiansHandler?.length < 5 ? (
- = MD_BREAKPOINT ? "19%" : "100%",
- marginTop: 52,
- padding: 12,
- height: 325,
- }}
- >
- setGuardiansHandler([...guardiansHandler, 1])}
- style={plusBox}
- >
-
-
-
-
- Add more
-
-
-
- ) : null}
-
- );
-};
-
-const dotBackground: ViewStyle = {
- backgroundColor: neutral33,
- height: 35,
- width: 35,
- borderRadius: 100,
- alignItems: "center",
- justifyContent: "center",
-};
-
-const trashBtnBox: ViewStyle = {
- backgroundColor: neutral00,
- height: 35,
- width: 35,
- borderRadius: 100,
- alignItems: "center",
- justifyContent: "center",
- position: "absolute",
- right: 16,
- bottom: 10,
-};
-
-const insideBoxMap: ViewStyle = {
- flexDirection: "row",
- justifyContent: "space-between",
- alignItems: "center",
- height: 40,
-};
-
-const toggleBox: ViewStyle = {
- flexDirection: "row",
- justifyContent: "space-between",
- alignItems: "center",
- marginBottom: 16,
-};
-
-const viewBox: ViewStyle = {
- width: "19%",
- marginHorizontal: 8,
-};
-
-const herosLisBox: BoxStyle = {
- padding: 12,
- marginTop: 12,
- height: 325,
-};
-
-const plusBox: ViewStyle = {
- flexDirection: "row",
- alignItems: "center",
- justifyContent: "center",
- width: "100%",
- height: "100%",
-};
-
-const imageBgStyle: ViewStyle = {
- alignItems: "center",
- justifyContent: "center",
- height: 260,
- width: "100%",
-};
diff --git a/packages/screens/AdministrationDashboard/component/GuardiansList.tsx b/packages/screens/AdministrationDashboard/component/GuardiansList.tsx
deleted file mode 100644
index 0799977870..0000000000
--- a/packages/screens/AdministrationDashboard/component/GuardiansList.tsx
+++ /dev/null
@@ -1,69 +0,0 @@
-import React, { FC, useState } from "react";
-import { Image, TouchableOpacity, ViewStyle } from "react-native";
-import Popover from "react-native-popover-view";
-
-import { TooltipContant } from "./TooltipContant";
-import avaPNG from "../../../../assets/default-images/ava.png";
-import checkBadgeSVG from "../../../../assets/icons/certified.svg";
-
-import { BrandText } from "@/components/BrandText";
-import { SVG } from "@/components/SVG";
-import { neutral44, neutral11 } from "@/utils/style/colors";
-import { fontSemibold16 } from "@/utils/style/fonts";
-import { layout } from "@/utils/style/layout";
-
-export const GuardiansList: FC<{ index: number }> = ({ index }) => {
- const [viewPopover, setViewPopover] = useState(-1);
-
- const setViewPopoverHandler = (index: number) => {
- setViewPopover((old) => (old === index ? -1 : index));
- };
-
- return (
- <>
- setViewPopoverHandler(index + 1)}
- style={listToggle}
- >
-
-
- Meebits
-
-
-
- }
- onRequestClose={() => setViewPopover(-1)}
- popoverStyle={popoverStyle}
- backgroundStyle={{ opacity: 0 }}
- >
-
-
- >
- );
-};
-
-const listToggle: ViewStyle = {
- flexDirection: "row",
- alignItems: "center",
- marginVertical: 5,
-};
-
-const popoverStyle = {
- backgroundColor: neutral11,
- width: 425,
- padding: layout.spacing_x2,
- borderWidth: 2,
- borderColor: neutral44,
- borderRadius: 12,
-};
diff --git a/packages/screens/AdministrationDashboard/component/TooltipContant.tsx b/packages/screens/AdministrationDashboard/component/TooltipContant.tsx
deleted file mode 100644
index e5bd2ccc06..0000000000
--- a/packages/screens/AdministrationDashboard/component/TooltipContant.tsx
+++ /dev/null
@@ -1,110 +0,0 @@
-import React from "react";
-import { Image, View, ViewStyle } from "react-native";
-
-import avaPNG from "../../../../assets/default-images/ava.png";
-import checkBadgeSVG from "../../../../assets/icons/certified.svg";
-import SolanaCircleSVG from "../../../../assets/icons/networks/solana-circle.svg";
-
-import { BrandText } from "@/components/BrandText";
-import { HeaderContent } from "@/components/HeaderContent/HeaderContent";
-import { SVG } from "@/components/SVG";
-import { InnerCellText } from "@/components/applicationTable/InnerCellText";
-import { lightblue, neutral00 } from "@/utils/style/colors";
-import { fontSemibold16 } from "@/utils/style/fonts";
-import { layout } from "@/utils/style/layout";
-
-export const TooltipContant = () => {
- return (
- <>
-
-
-
-
-
-
- Meebits
-
-
-
-
-
-
- Complete and ready to mint
-
-
-
-
-
-
-
-
- Solana
-
-
-
-
-
- Yes
-
-
-
-
- >
- );
-};
-
-const listToggle: ViewStyle = {
- flexDirection: "row",
- alignItems: "center",
-};
-
-const flexRowCenter: ViewStyle = {
- flexDirection: "row",
- alignItems: "center",
- justifyContent: "space-between",
-};
diff --git a/packages/screens/AllProjectAdministrationDash/AllProjectAdministrationDashScreen.tsx b/packages/screens/AllProjectAdministrationDash/AllProjectAdministrationDashScreen.tsx
deleted file mode 100644
index 20583d8a36..0000000000
--- a/packages/screens/AllProjectAdministrationDash/AllProjectAdministrationDashScreen.tsx
+++ /dev/null
@@ -1,145 +0,0 @@
-import React, { useState } from "react";
-import { View } from "react-native";
-
-import { AllApplicationTable } from "./component/AllApplicationTable";
-
-import { BrandText } from "@/components/BrandText";
-import { ScreenContainer } from "@/components/ScreenContainer";
-import { HighVolSortButton } from "@/components/sorts/HighVolSortButton";
-import { Tabs } from "@/components/tabs/Tabs";
-import { useAppNavigation } from "@/hooks/navigation/useAppNavigation";
-import { useIsMobile } from "@/hooks/useIsMobile";
-import { neutral33 } from "@/utils/style/colors";
-import { fontSemibold20, fontSemibold28 } from "@/utils/style/fonts";
-import { layout } from "@/utils/style/layout";
-
-type TabsListType = "all" | "verified" | "ethereum" | "solana" | "cosmos";
-
-const dummyData = [
- {
- rank: 1,
- collectionNameData: "Meebits",
- floor: "3.9",
- totalVol: "2,052,499,51",
- vol: "78,231.57",
- volPerctage: "+24.26%",
- },
- {
- rank: 1,
- collectionNameData: "Meebits",
- floor: "3.9",
- totalVol: "2,052,499,51",
- vol: "78,231.57",
- volPerctage: "-24.26%",
- },
- {
- rank: 1,
- collectionNameData: "Meebits",
- floor: "3.9",
- totalVol: "2,052,499,51",
- vol: "78,231.57",
- volPerctage: "+24.26%",
- },
- {
- rank: 1,
- collectionNameData: "Meebits",
- floor: "3.9",
- totalVol: "2,052,499,51",
- vol: "78,231.57",
- volPerctage: "-24.26%",
- },
-];
-
-export const AllProjectAdministrationDashScreen: React.FC = () => {
- const navigation = useAppNavigation();
- const isMobile = useIsMobile();
-
- const tabs = {
- all: {
- name: "All",
- },
- verified: {
- name: "Verified",
- },
- ethereum: {
- name: "Ethereum",
- },
- solana: {
- name: "Solana",
- },
- cosmos: {
- name: "Cosmos",
- },
- };
-
- const [selectedTab, setSelectedTab] = useState("all");
-
- return (
- >}
- headerChildren={
- Administration Dashboard
- }
- responsive
- onBackPress={() => navigation.goBack()}
- >
-
-
- All Projects
-
-
-
-
-
- {!isMobile && (
- {}} // TODO: don't forget to rewrite onPress function if possible
- height={42}
- />
- )}
-
-
-
-
-
-
- );
-};
diff --git a/packages/screens/AllProjectAdministrationDash/component/AllApplicationTable.tsx b/packages/screens/AllProjectAdministrationDash/component/AllApplicationTable.tsx
deleted file mode 100644
index 7f7de49d45..0000000000
--- a/packages/screens/AllProjectAdministrationDash/component/AllApplicationTable.tsx
+++ /dev/null
@@ -1,145 +0,0 @@
-import React from "react";
-import { FlatList, View } from "react-native";
-
-import dotsSVG from "../../../../assets/icons/dots.svg";
-
-import { BrandText } from "@/components/BrandText";
-import { SVG } from "@/components/SVG";
-import { CollectionNameCell } from "@/components/applicationTable/CollectionNameCell";
-import { InnerCellText } from "@/components/applicationTable/InnerCellText";
-import { PercentageVolumeCell } from "@/components/applicationTable/PercentageVolumeCell";
-import { TableHeader } from "@/components/table/TableHeader";
-import { TableColumns } from "@/components/table/utils";
-import { useIsMobile } from "@/hooks/useIsMobile";
-import { mineShaftColor } from "@/utils/style/colors";
-import { fontSemibold11, fontSemibold13 } from "@/utils/style/fonts";
-import { layout, screenContentMaxWidthLarge } from "@/utils/style/layout";
-
-const TABLE_COLUMNS: TableColumns = {
- rank: {
- label: "#",
- flex: 1,
- },
- collectionNameData: {
- label: "Collection Name",
- flex: 5,
- },
- floor: {
- label: "Floor",
- flex: 3,
- },
- totalVol: {
- label: "Total Vol",
- flex: 3,
- },
- vol: {
- label: "24h Vol",
- flex: 3,
- },
- volPerctage: {
- label: "24h Vol %",
- flex: 3,
- },
-};
-
-export const AllApplicationTable: React.FC<{
- rows: any[];
-}> = ({ rows }) => {
- const isMobile = useIsMobile();
-
- return (
-
-
- }
- keyExtractor={(item) => item.id}
- style={{
- minHeight: 220,
- borderTopColor: mineShaftColor,
- borderTopWidth: 1,
- }}
- />
-
- );
-};
-
-const ApplicationRowData: React.FC<{ rowData: any }> = ({ rowData }) => {
- const isMobile = useIsMobile();
-
- return (
-
-
- {rowData.rank}
-
-
-
- {rowData.floor}
-
- {!isMobile && (
- <>
-
- {rowData.totalVol}
-
-
- {rowData.vol}
-
-
-
-
-
- >
- )}
-
- );
-};
diff --git a/packages/screens/ApplicationRewiew/ApplicationRewiew.tsx b/packages/screens/ApplicationRewiew/ApplicationRewiew.tsx
deleted file mode 100644
index d2a0ea9607..0000000000
--- a/packages/screens/ApplicationRewiew/ApplicationRewiew.tsx
+++ /dev/null
@@ -1,39 +0,0 @@
-import React from "react";
-import { View } from "react-native";
-
-import { ApplicationDetail } from "./component/ApplicationDetail";
-import { CreatorInformation } from "./component/CreatorInformation";
-import { InvestmentInformation } from "./component/InvestmentInformation";
-import { ProjectInformation } from "./component/ProjectInformation";
-import { TeamInformation } from "./component/TeamInformation";
-
-import { BrandText } from "@/components/BrandText";
-import { ScreenContainer } from "@/components/ScreenContainer";
-import { useAppNavigation } from "@/hooks/navigation/useAppNavigation";
-import { fontSemibold20 } from "@/utils/style/fonts";
-import { layout } from "@/utils/style/layout";
-
-export const ApplicationRewiewScreen: React.FC = () => {
- const navigation = useAppNavigation();
-
- return (
- >}
- headerChildren={
- Launchpad Applications
- }
- responsive
- onBackPress={() => navigation.goBack()}
- >
-
-
-
-
-
-
-
-
-
-
- );
-};
diff --git a/packages/screens/ApplicationRewiew/component/ApplicationCard.tsx b/packages/screens/ApplicationRewiew/component/ApplicationCard.tsx
deleted file mode 100644
index 50b9400a4c..0000000000
--- a/packages/screens/ApplicationRewiew/component/ApplicationCard.tsx
+++ /dev/null
@@ -1,21 +0,0 @@
-import React from "react";
-
-import { BrandText } from "@/components/BrandText";
-import { TertiaryBox } from "@/components/boxes/TertiaryBox";
-import { neutral77 } from "@/utils/style/colors";
-import { fontSemibold12, fontSemibold14 } from "@/utils/style/fonts";
-
-export const ApplicationCard: React.FC<{
- rowData: { title: string; value: string };
-}> = ({ rowData }) => {
- return (
-
-
- {rowData?.title}
-
-
- {rowData?.value}
-
-
- );
-};
diff --git a/packages/screens/ApplicationRewiew/component/ApplicationDetail.tsx b/packages/screens/ApplicationRewiew/component/ApplicationDetail.tsx
deleted file mode 100644
index 31110d2dd2..0000000000
--- a/packages/screens/ApplicationRewiew/component/ApplicationDetail.tsx
+++ /dev/null
@@ -1,126 +0,0 @@
-import React from "react";
-import {
- View,
- useWindowDimensions,
- Image,
- TouchableOpacity,
-} from "react-native";
-
-import { ApplicationCard } from "./ApplicationCard";
-import { ApplicationSocialCard } from "./ApplicationSocialCard";
-import guardianPng from "../../../../assets/default-images/guardian_profile.png";
-import discordSVG from "../../../../assets/icons/discord.svg";
-import twitterSVG from "../../../../assets/icons/twitter.svg";
-import websiteSVG from "../../../../assets/icons/website.svg";
-
-import { BrandText } from "@/components/BrandText";
-import { TertiaryBadge } from "@/components/badges/TertiaryBadge";
-import { SecondaryBox } from "@/components/boxes/SecondaryBox";
-import { primaryColor, primaryTextColor } from "@/utils/style/colors";
-import { fontSemibold14, fontSemibold28 } from "@/utils/style/fonts";
-
-const dummyData = [
- { title: "Supply", value: "5000" },
- { title: "Price", value: "5 SOL" },
- { title: "Limit Buy", value: "5 by address" },
-];
-
-const applicationSocialData = [
- { icon: discordSVG, name: "Discord" },
- { icon: websiteSVG, name: "Website" },
- { icon: twitterSVG, name: "Twitter" },
-];
-const LG_BREAKPOINT = 1250;
-
-export const ApplicationDetail: React.FC = () => {
- const { width } = useWindowDimensions();
-
- return (
- = LG_BREAKPOINT ? "row" : "column-reverse",
- alignItems: width >= LG_BREAKPOINT ? "flex-start" : "center",
- justifyContent: "center",
- marginTop: 72,
- paddingBottom: 40,
- }}
- >
- {/* ===== Left container */}
-
-
-
-
-
- Yellow Block Generation
-
-
- {dummyData?.map((item, index) => (
-
- ))}
-
-
-
- For decades, the destruction of ecosystems and social relations has
- turned people into soulless robots. At the same time, inequality
- explodes every year and misery becomes the norm for the silent
- majority.
-
-
- A minority of powerful & wealthy leaders, called the “The Legion'',
- have set up a technological & political system allowing them to
- continue to develop their wealth and safety.
-
-
- Of course this system only serves the happy few elite members of the
- society while the majority survives in an increasingly uncertain
- world.
-
-
-
- {applicationSocialData?.map((item, index) => (
-
- ))}
-
-
-
-
- Approve
-
-
-
-
- {/* ===== Right container */}
-
-
-
-
- );
-};
diff --git a/packages/screens/ApplicationRewiew/component/ApplicationSocialCard.tsx b/packages/screens/ApplicationRewiew/component/ApplicationSocialCard.tsx
deleted file mode 100644
index 81969bbcd3..0000000000
--- a/packages/screens/ApplicationRewiew/component/ApplicationSocialCard.tsx
+++ /dev/null
@@ -1,36 +0,0 @@
-import React from "react";
-
-import { BrandText } from "@/components/BrandText";
-import { SVG } from "@/components/SVG";
-import { SecondaryBox } from "@/components/boxes/SecondaryBox";
-import { neutral22, neutral33 } from "@/utils/style/colors";
-import { fontSemibold14 } from "@/utils/style/fonts";
-
-export const ApplicationSocialCard: React.FC<{ socialData: any }> = ({
- socialData,
-}) => {
- return (
-
-
-
-
-
- {socialData?.name}
-
-
- );
-};
diff --git a/packages/screens/ApplicationRewiew/component/CreatorInformation.tsx b/packages/screens/ApplicationRewiew/component/CreatorInformation.tsx
deleted file mode 100644
index e73546a253..0000000000
--- a/packages/screens/ApplicationRewiew/component/CreatorInformation.tsx
+++ /dev/null
@@ -1,67 +0,0 @@
-import React from "react";
-import { View, useWindowDimensions } from "react-native";
-
-import { BoxDetailTeritori } from "@/components/BoxDetailTeritori/BoxDetailTeritori";
-import { BrandText } from "@/components/BrandText";
-import { neutral33 } from "@/utils/style/colors";
-import { fontSemibold20 } from "@/utils/style/fonts";
-
-const MD_BREAKPOINT = 800;
-
-export const CreatorInformation: React.FC = () => {
- const { width } = useWindowDimensions();
-
- return (
-
- Creator information
- = MD_BREAKPOINT ? "row" : "column",
- marginTop: 16,
- gap: 12,
- flexWrap: "wrap",
- }}
- >
-
-
-
-
-
-
-
-
- = MD_BREAKPOINT ? "row" : "column",
- marginTop: 12,
- gap: 12,
- }}
- >
-
-
-
-
-
- );
-};
diff --git a/packages/screens/ApplicationRewiew/component/InvestmentInformation.tsx b/packages/screens/ApplicationRewiew/component/InvestmentInformation.tsx
deleted file mode 100644
index d31b3ad8a8..0000000000
--- a/packages/screens/ApplicationRewiew/component/InvestmentInformation.tsx
+++ /dev/null
@@ -1,58 +0,0 @@
-import React from "react";
-import { View, useWindowDimensions } from "react-native";
-
-import { LinkCard } from "./LinkCard";
-
-import { BoxDetailTeritori } from "@/components/BoxDetailTeritori/BoxDetailTeritori";
-import { BrandText } from "@/components/BrandText";
-import { fontSemibold20 } from "@/utils/style/fonts";
-
-const MD_BREAKPOINT = 800;
-
-export const InvestmentInformation: React.FC = () => {
- const { width } = useWindowDimensions();
-
- return (
-
- Investment information
- = MD_BREAKPOINT ? "row" : "column",
- marginTop: 16,
- gap: 12,
- flexWrap: "wrap",
- }}
- >
-
-
-
-
-
- );
-};
diff --git a/packages/screens/ApplicationRewiew/component/LinkCard.tsx b/packages/screens/ApplicationRewiew/component/LinkCard.tsx
deleted file mode 100644
index 9ab05c3da2..0000000000
--- a/packages/screens/ApplicationRewiew/component/LinkCard.tsx
+++ /dev/null
@@ -1,40 +0,0 @@
-import React from "react";
-import { FlatList, View } from "react-native";
-
-import { BrandText } from "@/components/BrandText";
-import { TertiaryBox } from "@/components/boxes/TertiaryBox";
-import { neutral77 } from "@/utils/style/colors";
-import { fontSemibold12, fontSemibold14 } from "@/utils/style/fonts";
-
-export const LinkCard: React.FC<{ title: any; linksData: any }> = ({
- title,
- linksData,
-}) => {
- return (
-
-
- {title}
-
- (
-
-
- {item?.title}
-
-
- {item?.link}
-
-
- )}
- />
-
- );
-};
diff --git a/packages/screens/ApplicationRewiew/component/ProjectInformation.tsx b/packages/screens/ApplicationRewiew/component/ProjectInformation.tsx
deleted file mode 100644
index 88b6869f9f..0000000000
--- a/packages/screens/ApplicationRewiew/component/ProjectInformation.tsx
+++ /dev/null
@@ -1,53 +0,0 @@
-import React from "react";
-import { useWindowDimensions, View } from "react-native";
-
-import { LinkCard } from "./LinkCard";
-
-import { BoxDetailTeritori } from "@/components/BoxDetailTeritori/BoxDetailTeritori";
-import { BrandText } from "@/components/BrandText";
-import { fontSemibold20 } from "@/utils/style/fonts";
-
-const MD_BREAKPOINT = 800;
-
-export const ProjectInformation: React.FC = () => {
- const { width } = useWindowDimensions();
-
- return (
-
- Project information
- = MD_BREAKPOINT ? "row" : "column",
- marginTop: 16,
- flexWrap: "wrap",
- gap: 12,
- }}
- >
-
-
-
-
-
-
-
-
- );
-};
diff --git a/packages/screens/ApplicationRewiew/component/TeamInformation.tsx b/packages/screens/ApplicationRewiew/component/TeamInformation.tsx
deleted file mode 100644
index 25ef4f0943..0000000000
--- a/packages/screens/ApplicationRewiew/component/TeamInformation.tsx
+++ /dev/null
@@ -1,58 +0,0 @@
-import React from "react";
-import { useWindowDimensions, View } from "react-native";
-
-import { LinkCard } from "./LinkCard";
-
-import { BoxDetailTeritori } from "@/components/BoxDetailTeritori/BoxDetailTeritori";
-import { BrandText } from "@/components/BrandText";
-import { fontSemibold20 } from "@/utils/style/fonts";
-
-const MD_BREAKPOINT = 800;
-
-export const TeamInformation: React.FC = () => {
- const { width } = useWindowDimensions();
-
- return (
-
- Team information
- = MD_BREAKPOINT ? "row" : "column",
- marginTop: 16,
- gap: 12,
- }}
- >
-
-
-
-
-
- );
-};
diff --git a/packages/screens/FeedNewArticle/FeedNewArticleScreen.tsx b/packages/screens/FeedNewArticle/FeedNewArticleScreen.tsx
index 5379e54f53..c7e5e8dc04 100644
--- a/packages/screens/FeedNewArticle/FeedNewArticleScreen.tsx
+++ b/packages/screens/FeedNewArticle/FeedNewArticleScreen.tsx
@@ -11,8 +11,8 @@ import { SVG } from "@/components/SVG";
import { ScreenContainer } from "@/components/ScreenContainer";
import { WalletStatusBox } from "@/components/WalletStatusBox";
import { TertiaryBox } from "@/components/boxes/TertiaryBox";
-import { FileUploader } from "@/components/fileUploader";
import { Label, TextInputCustom } from "@/components/inputs/TextInputCustom";
+import { FileUploader } from "@/components/inputs/fileUploader";
import { FeedPostingProgressBar } from "@/components/loaders/FeedPostingProgressBar";
import { RichText } from "@/components/socialFeed/RichText";
import { PublishValues } from "@/components/socialFeed/RichText/RichText.type";
diff --git a/packages/screens/Launchpad/CreateCollection.type.ts b/packages/screens/Launchpad/CreateCollection.type.ts
deleted file mode 100644
index 94e6093e24..0000000000
--- a/packages/screens/Launchpad/CreateCollection.type.ts
+++ /dev/null
@@ -1,71 +0,0 @@
-export interface NewCollectionAssetsFormValues {
- nftApiKey?: string;
-}
-
-export interface ExistingBaseUrlFormValues {
- baseTokenUri?: string;
- coverImageUrl?: string;
-}
-
-export interface NewCollectionBasicFormValues {
- name?: string;
- description?: string;
- symbol?: string;
- externalLink?: string;
-}
-export interface NewCollectionDetailsFormValues {
- websiteLink?: string;
- twitterProfileUrl?: string;
- twitterFollowers: string;
- discordName?: string;
- email?: string;
- projectType?: string;
- projectDesciption?: string;
-}
-
-export interface NewCollectionMintFormValues {
- token?: string;
- unitPrice?: string;
- perAddressLimit: string;
- startTime?: string;
-}
-export interface TeamandInvestmentFormValues {
- teamDesciption?: string;
- teamLink?: string;
- partner?: string;
- investDesciption?: string;
- investLink?: string;
- roadmap?: string;
-}
-
-export interface NewCollectionAdditionalFormValues {
- artwork?: string;
- collectionSupply?: string;
- mintPrice?: string;
- mintDate?: string;
- whitelistSpotPercentage?: string;
-}
-
-export interface ExistingWhitelistDetailsFormValues {
- whitelistAddress: string;
-}
-export interface NewWhitelistDetailsFormValues {
- unitPrice: string;
- memberLimit: string;
- perAddresaLimit: string;
- startTime: string;
- endTime: string;
-}
-
-export interface NewConfigureRoyaltyDetailsFormValues {
- PaymentAddress: string;
- SharePercentage: string;
-}
-
-export interface NewMetadataDetailsFormValues {
- name: string;
- description: string;
- externalURL: string;
- youtubeURL: string;
- attributes: string;
-}
diff --git a/packages/screens/Launchpad/LaunchpadApplyScreen.tsx b/packages/screens/Launchpad/LaunchpadApply/LaunchpadApplyScreen.tsx
similarity index 89%
rename from packages/screens/Launchpad/LaunchpadApplyScreen.tsx
rename to packages/screens/Launchpad/LaunchpadApply/LaunchpadApplyScreen.tsx
index 7338a709e1..2df6c998b0 100644
--- a/packages/screens/Launchpad/LaunchpadApplyScreen.tsx
+++ b/packages/screens/Launchpad/LaunchpadApply/LaunchpadApplyScreen.tsx
@@ -1,10 +1,9 @@
import React from "react";
import { StyleSheet, View } from "react-native";
-import { LaunchpadBanner } from "./components/LaunchpadBanner";
+import { LaunchpadBanner } from "../components/LaunchpadBanner";
import { BrandText } from "@/components/BrandText";
-import { OmniLink } from "@/components/OmniLink";
import { ScreenContainer } from "@/components/ScreenContainer";
import {
LargeBoxButton,
@@ -25,7 +24,7 @@ const BUTTONS: LargeBoxButtonProps[] = [
title: "Create",
description:
"Upload your assets, enter collection metadata and deploy your collection.",
- buttonTitle: "Open",
+ buttonTitle: "Coming soon",
},
{
title: "My Collections",
@@ -57,9 +56,7 @@ export const LaunchpadApplyScreen: ScreenFC<"LaunchpadApply"> = () => {
url="https://airtable.com/shr1kU7kXW0267gNV"
/>
-
-
-
+
diff --git a/packages/screens/Launchpad/LaunchpadCreateScreen.tsx b/packages/screens/Launchpad/LaunchpadCreateScreen.tsx
deleted file mode 100644
index 59de032397..0000000000
--- a/packages/screens/Launchpad/LaunchpadCreateScreen.tsx
+++ /dev/null
@@ -1,139 +0,0 @@
-import React, { useState } from "react";
-import { View } from "react-native";
-
-import { LaunchpadAdditional } from "./components/LaunchpadAdditional";
-import { LaunchpadAssetsandMetadata } from "./components/LaunchpadAssetsandMetadata";
-import { LaunchpadBasic } from "./components/LaunchpadBasic";
-import { LaunchpadDetails } from "./components/LaunchpadDetails";
-import { LaunchpadMinting } from "./components/LaunchpadMinting";
-import { LaunchpadSteper } from "./components/LaunchpadSteper";
-import { LaunchpadTeamandInvestment } from "./components/LaunchpadTeamandInvestment";
-
-import { BrandText } from "@/components/BrandText";
-import { ScreenContainer } from "@/components/ScreenContainer";
-import { PrimaryButton } from "@/components/buttons/PrimaryButton";
-import { SecondaryButton } from "@/components/buttons/SecondaryButton";
-import { SpacerColumn } from "@/components/spacer";
-import { NetworkFeature } from "@/networks";
-import { ScreenFC, useAppNavigation } from "@/utils/navigation";
-import { neutral33 } from "@/utils/style/colors";
-import { layout } from "@/utils/style/layout";
-
-const StepContent = ({ step }: { step: number }) => {
- switch (step) {
- case 1:
- return ;
- case 2:
- return ;
- case 3:
- return ;
- case 4:
- return ;
- case 5:
- return ;
- case 6:
- return ;
- default:
- return <>>;
- }
-};
-
-const stepOptions = [
- { key: 1, title: "Basic" },
- { key: 2, title: "Details" },
- { key: 3, title: "Team & Investments" },
- { key: 4, title: "Additional" },
- { key: 5, title: "Minting" },
- { key: 6, title: "Assets & Metadata" },
-];
-
-export const LaunchpadCreateScreen: ScreenFC<"LaunchpadCreate"> = () => {
- const navigation = useAppNavigation();
-
- const [selectedStep, setSelectedStep] = useState(1);
- const [isLoading, setLoading] = useState(false);
-
- const onSubmit = () => {
- setLoading(true);
- setTimeout(() => {
- setLoading(false);
- }, 1000);
- };
-
- return (
- >}
- forceNetworkFeatures={[NetworkFeature.SocialFeed]}
- headerChildren={Launchpad Submission Form}
- onBackPress={() => navigation.navigate("LaunchpadApply")}
- >
-
-
-
-
-
-
-
-
-
-
- {selectedStep !== 1 && (
- {
- setSelectedStep(selectedStep - 1);
- }}
- />
- )}
- {
- if (stepOptions.length === selectedStep) {
- onSubmit();
- } else {
- setSelectedStep(selectedStep + 1);
- }
- }}
- />
-
-
-
-
- );
-};
diff --git a/packages/screens/Launchpad/LaunchpadScreen.tsx b/packages/screens/Launchpad/LaunchpadHome/LaunchpadScreen.tsx
similarity index 100%
rename from packages/screens/Launchpad/LaunchpadScreen.tsx
rename to packages/screens/Launchpad/LaunchpadHome/LaunchpadScreen.tsx
diff --git a/packages/screens/Launchpad/components/AssetsTab.tsx b/packages/screens/Launchpad/components/AssetsTab.tsx
deleted file mode 100644
index a4984faa7b..0000000000
--- a/packages/screens/Launchpad/components/AssetsTab.tsx
+++ /dev/null
@@ -1,133 +0,0 @@
-import React, { useState } from "react";
-import { useForm } from "react-hook-form";
-import { SafeAreaView, View } from "react-native";
-
-import { TextInputLaunchpadRequired } from "./inputs/TextInputLaunchpadRequired";
-import { MetadataUpdateModal } from "./modals/MetadataUpdateModal";
-import { NewCollectionAssetsFormValues } from "../CreateCollection.type";
-
-import { SelectedFilesPreview } from "@/components/FilePreview/SelectedFilesPreview/SelectedFilesPreview";
-import { FileUploaderSmall } from "@/components/inputs/FileUploaderSmall";
-import { IMAGE_MIME_TYPES } from "@/utils/mime";
-import { neutral33 } from "@/utils/style/colors";
-import { layout } from "@/utils/style/layout";
-import { LocalFileData } from "@/utils/types/files";
-
-export const AssetsTab: React.FC = () => {
- const [files, setFiles] = useState([]);
- const [selectedFile, setSelectedFile] = useState();
-
- const [medataUpdateModalVisible, setMedataUpdateModalVisible] =
- useState(false);
-
- const { control } = useForm({
- defaultValues: {
- nftApiKey: "",
- },
- mode: "onBlur",
- });
- return (
-
-
- {/* ===== Left container */}
-
-
-
-
- label="NFT.Storage API Key"
- placeHolder="My Awesome Collection"
- name="nftApiKey"
- control={control}
- />
-
- {
- setFiles(files);
- }}
- mimeTypes={IMAGE_MIME_TYPES}
- />
-
- {}}
- mimeTypes={IMAGE_MIME_TYPES}
- multiple
- />
-
-
-
-
-
-
- {/* ===== Right container */}
-
- {
- setMedataUpdateModalVisible(true);
- setSelectedFile(item);
- }}
- />
-
-
- {selectedFile && (
- setMedataUpdateModalVisible(false)}
- isVisible={medataUpdateModalVisible}
- item={selectedFile}
- />
- )}
-
-
- );
-};
diff --git a/packages/screens/Launchpad/components/ConfigureRoyaltyDetails.tsx b/packages/screens/Launchpad/components/ConfigureRoyaltyDetails.tsx
deleted file mode 100644
index a860034455..0000000000
--- a/packages/screens/Launchpad/components/ConfigureRoyaltyDetails.tsx
+++ /dev/null
@@ -1,65 +0,0 @@
-import React from "react";
-import { useForm } from "react-hook-form";
-import { View } from "react-native";
-
-import { TextInputLaunchpadRequiredSublabel } from "./inputs/TextInputLaunchpadRequiredSublabel";
-import { NewConfigureRoyaltyDetailsFormValues } from "../CreateCollection.type";
-
-import { BrandText } from "@/components/BrandText";
-import { SpacerColumn } from "@/components/spacer";
-import { neutral55, neutral77 } from "@/utils/style/colors";
-import {
- fontSemibold13,
- fontSemibold14,
- fontSemibold20,
-} from "@/utils/style/fonts";
-
-export const ConfigureRoyaltyDetails: React.FC = () => {
- const { control } = useForm({
- defaultValues: {
- PaymentAddress: "",
- SharePercentage: "",
- },
- mode: "onBlur",
- });
-
- return (
-
-
- Royalty Details
-
-
- Information about royalty
-
-
-
-
- label="Payment Address "
- placeHolder="teritori123456789qwertyuiopasdfghjklzxcvbnm"
- name="PaymentAddress"
- sublabel={
-
-
- Address to receive royalties
-
-
- }
- control={control}
- />
-
-
- label="Share Percentage "
- placeHolder="8%"
- name="SharePercentage"
- sublabel={
-
-
- Percentage of royalties to be paid
-
-
- }
- control={control}
- />
-
- );
-};
diff --git a/packages/screens/Launchpad/components/ExistingWhitelist.tsx b/packages/screens/Launchpad/components/ExistingWhitelist.tsx
deleted file mode 100644
index 107a6dcb96..0000000000
--- a/packages/screens/Launchpad/components/ExistingWhitelist.tsx
+++ /dev/null
@@ -1,34 +0,0 @@
-import React from "react";
-import { useForm } from "react-hook-form";
-import { View } from "react-native";
-
-import { TextInputLaunchpadRequired } from "./inputs/TextInputLaunchpadRequired";
-import { ExistingWhitelistDetailsFormValues } from "../CreateCollection.type";
-
-import { SpacerColumn } from "@/components/spacer";
-
-export const ExistingWhitelist: React.FC = () => {
- const { control } = useForm({
- defaultValues: {
- whitelistAddress: "",
- },
- mode: "onBlur",
- });
-
- return (
-
-
-
-
- label="Whitelist Address"
- placeHolder="teritori123456789qwertyuiopasdfghjklzxcvbnm"
- name="whitelistAddress"
- control={control}
- />
-
- );
-};
diff --git a/packages/screens/Launchpad/components/LaunchpadAdditional.tsx b/packages/screens/Launchpad/components/LaunchpadAdditional.tsx
deleted file mode 100644
index cc21e4f1ac..0000000000
--- a/packages/screens/Launchpad/components/LaunchpadAdditional.tsx
+++ /dev/null
@@ -1,148 +0,0 @@
-import React, { useState } from "react";
-import { Controller, useForm } from "react-hook-form";
-import { View } from "react-native";
-
-import { SelectionDropdown } from "./dropdowns/SelectionDropdown";
-import { TextInputLaunchpadRequired } from "./inputs/TextInputLaunchpadRequired";
-import { TextInputLaunchpadRequiredSublabel } from "./inputs/TextInputLaunchpadRequiredSublabel";
-import { NewCollectionAdditionalFormValues } from "../CreateCollection.type";
-
-import { BrandText } from "@/components/BrandText";
-import { DateTimeInput } from "@/components/inputs/DateTimeInput";
-import { SpacerColumn } from "@/components/spacer";
-import { neutral55, neutral77 } from "@/utils/style/colors";
-import {
- fontSemibold13,
- fontSemibold14,
- fontSemibold20,
-} from "@/utils/style/fonts";
-
-export const LaunchpadAdditional: React.FC = () => {
- const dropdownOptions = ["Yes", "No"];
-
- const [isReadyForMint, setIsReadyForMint] = useState("");
- const [isEscrowMintProceeds, setIsEscrowMintProceeds] = useState("");
- const [isDox, setIsDox] = useState("");
-
- const { control, getFieldState, watch } =
- useForm({
- defaultValues: {
- artwork: "",
- collectionSupply: "",
- mintPrice: "",
- mintDate: "",
- whitelistSpotPercentage: "",
- },
- mode: "onBlur",
- });
- const mintDate = watch("mintDate");
-
- return (
-
-
- Additional Information
-
-
- Fill the additional information
-
-
-
-
- label="Please describe your artwork: "
- sublabel={
-
-
- 1. Is it completely original?
-
-
- 2. Who is the artist?
-
-
- 3. How did your team meet the artist?
-
-
- }
- placeHolder="Describe here..."
- name="artwork"
- control={control}
- multiline
- />
-
-
-
-
- label="What is your expected collection supply?"
- placeHolder="Type here..."
- name="collectionSupply"
- control={control}
- />
-
-
- label="What is your expected public sale mint price?"
- sublabel={
-
-
- Just type the number in your Network currency:
-
-
- }
- placeHolder="0"
- name="mintPrice"
- control={control}
- />
-
-
- label="What is your expected mint date? "
- placeHolder="dd.mm.yyyy | hh:mm PM"
- name="mintDate"
- control={control}
- />
-
-
- name="mintDate"
- control={control}
- render={({ field: { onChange } }) => (
-
- )}
- />
-
-
-
-
-
-
-
- label="We'd love to offer TeritoriDAO members 10% of your whitelist supply if your project is willing. Please let us know how many whitelist spots you'd be willing to allocate our DAO: "
- placeHolder="0"
- name="whitelistSpotPercentage"
- control={control}
- />
-
-
- );
-};
diff --git a/packages/screens/Launchpad/components/LaunchpadAssetsandMetadata.tsx b/packages/screens/Launchpad/components/LaunchpadAssetsandMetadata.tsx
deleted file mode 100644
index b51515d79a..0000000000
--- a/packages/screens/Launchpad/components/LaunchpadAssetsandMetadata.tsx
+++ /dev/null
@@ -1,78 +0,0 @@
-import React, { useState } from "react";
-import { View } from "react-native";
-
-import { AssetsTab } from "./AssetsTab";
-import { UriTab } from "./UriTab";
-
-import { BrandText } from "@/components/BrandText";
-import { SpacerColumn } from "@/components/spacer";
-import { Tabs } from "@/components/tabs/Tabs";
-import { neutral77, primaryColor } from "@/utils/style/colors";
-import { fontSemibold14, fontSemibold28 } from "@/utils/style/fonts";
-
-const AssetsandMetadataTabItems = {
- assets: {
- name: "Upload assets & metadata",
- },
- uri: {
- name: "Use an existing base URI",
- },
-};
-
-export const LaunchpadAssetsandMetadata: React.FC = () => {
- const [selectedTab, setSelectedTab] =
- useState("assets");
-
- return (
-
-
- Assets & Metadata
-
-
-
-
- Make sure you check out{" "}
-
- documentation
- {" "}
- on how to create your collection
-
-
-
-
-
-
- {selectedTab === "assets" && }
- {selectedTab === "uri" && }
-
- );
-};
diff --git a/packages/screens/Launchpad/components/LaunchpadBasic.tsx b/packages/screens/Launchpad/components/LaunchpadBasic.tsx
deleted file mode 100644
index 7039155e8c..0000000000
--- a/packages/screens/Launchpad/components/LaunchpadBasic.tsx
+++ /dev/null
@@ -1,115 +0,0 @@
-import React, { useState } from "react";
-import { useForm } from "react-hook-form";
-import { View } from "react-native";
-
-import { TextInputLaunchpadRequired } from "./inputs/TextInputLaunchpadRequired";
-import { NewCollectionBasicFormValues } from "../CreateCollection.type";
-
-import { BrandText } from "@/components/BrandText";
-import { CustomNetworkSelector } from "@/components/NetworkSelector/CustomNetworkSelector";
-import { FileUploaderSmall } from "@/components/inputs/FileUploaderSmall";
-import { SpacerColumn } from "@/components/spacer";
-import { IMAGE_MIME_TYPES } from "@/utils/mime";
-import { neutral77, primaryColor } from "@/utils/style/colors";
-import { fontSemibold14, fontSemibold28 } from "@/utils/style/fonts";
-import { layout } from "@/utils/style/layout";
-import { LocalFileData } from "@/utils/types/files";
-
-export const LaunchpadBasic: React.FC = () => {
- const { control } = useForm({
- defaultValues: {
- name: "",
- description: "",
- symbol: "",
- externalLink: "",
- },
- mode: "onBlur",
- });
- const [coverImage, setCoverImage] = useState();
-
- return (
-
-
- Create Collection
-
-
-
-
- Make sure you check out{" "}
-
- documentation
- {" "}
- on how to create your collection
-
-
-
-
-
-
- label="Name"
- placeHolder="My Awesome Collection"
- name="name"
- control={control}
- />
-
-
- label="Description"
- placeHolder="My Awesome Collection Description"
- name="description"
- control={control}
- />
-
-
- label="Symbol"
- placeHolder="Symbol"
- name="symbol"
- control={control}
- />
-
- setCoverImage(files[0])}
- filesCount={0}
- mimeTypes={IMAGE_MIME_TYPES}
- required
- imageToShow={coverImage}
- onPressDelete={() => setCoverImage(undefined)}
- />
-
-
- label="External Link"
- placeHolder="https://collection..."
- name="externalLink"
- control={control}
- required={false}
- />
-
-
-
-
- );
-};
diff --git a/packages/screens/Launchpad/components/LaunchpadDetails.tsx b/packages/screens/Launchpad/components/LaunchpadDetails.tsx
deleted file mode 100644
index 35335407d6..0000000000
--- a/packages/screens/Launchpad/components/LaunchpadDetails.tsx
+++ /dev/null
@@ -1,154 +0,0 @@
-import React, { useState } from "react";
-import { useForm } from "react-hook-form";
-import { View } from "react-native";
-
-import { MultipleSelectionDropdown } from "./dropdowns/MultipleSelectionDropdown";
-import { SelectionDropdown } from "./dropdowns/SelectionDropdown";
-import { TextInputLaunchpadRequired } from "./inputs/TextInputLaunchpadRequired";
-import { TextInputLaunchpadRequiredSublabel } from "./inputs/TextInputLaunchpadRequiredSublabel";
-import { NewCollectionDetailsFormValues } from "../CreateCollection.type";
-
-import { BrandText } from "@/components/BrandText";
-import { SpacerColumn } from "@/components/spacer";
-import { neutral55, neutral77 } from "@/utils/style/colors";
-import {
- fontSemibold13,
- fontSemibold14,
- fontSemibold20,
-} from "@/utils/style/fonts";
-import { layout } from "@/utils/style/layout";
-
-export const LaunchpadDetails: React.FC = () => {
- const dropdownOptions = ["Yes", "No"];
- const projectOptions = ["PFP", "Utility", "Metaverse", "P2E", "Other"];
-
- const [isDerivativeProject, setIsDerivativeProject] = useState("");
- const [isPreviouslyApplied, setIsPreviouslyApplied] = useState("");
- const [projectTypes, setProjectTypes] = useState([]);
-
- const { control } = useForm({
- defaultValues: {
- websiteLink: "",
- twitterProfileUrl: "",
- twitterFollowers: "",
- discordName: "",
- email: "",
- projectDesciption: "",
- projectType: "",
- },
- mode: "onBlur",
- });
-
- return (
-
-
- Collection details
-
-
- Information about your collection
-
-
-
-
- label="Website Link"
- placeHolder="https://website..."
- name="websiteLink"
- control={control}
- required={false}
- />
-
-
- required
- label="Twitter Profile "
- placeHolder="https://twitter..."
- name="twitterProfileUrl"
- control={control}
- />
-
-
- required
- label="How many Twitter followers does your project have? "
- placeHolder="10,000"
- name="twitterFollowers"
- control={control}
- />
-
-
- required
- label="Discord name of your main contact: "
- placeHolder="nickname#0000"
- name="discordName"
- control={control}
- />
-
-
- required
- label="Main contact email address: "
- placeHolder="contact@email.com"
- name="email"
- control={control}
- />
-
-
-
- {
- if (projectTypes.includes(item)) {
- setProjectTypes(projectTypes.filter((data) => data !== item));
- } else {
- setProjectTypes([...projectTypes, item]);
- }
- }}
- label="Project type:"
- sublabel={
-
-
- Multiple answers allowed
-
-
- }
- style={{ zIndex: 2 }}
- />
-
-
- label="Describe your project: "
- sublabel={
-
-
- 1. What's your concept?
-
-
- 2. How is it different?
-
-
- 3. What's your goal?
-
-
- }
- placeHolder="Describe here..."
- name="projectDesciption"
- control={control}
- />
-
-
-
-
- );
-};
diff --git a/packages/screens/Launchpad/components/LaunchpadMinting.tsx b/packages/screens/Launchpad/components/LaunchpadMinting.tsx
deleted file mode 100644
index 783321b345..0000000000
--- a/packages/screens/Launchpad/components/LaunchpadMinting.tsx
+++ /dev/null
@@ -1,140 +0,0 @@
-import React, { useState } from "react";
-import { useForm } from "react-hook-form";
-import { View } from "react-native";
-
-import { ConfigureRoyaltyDetails } from "./ConfigureRoyaltyDetails";
-import { ExistingWhitelist } from "./ExistingWhitelist";
-import { NavBar } from "./NavBar";
-import { NewWhitelist } from "./NewWhitelist";
-import { TextInputLaunchpadRequired } from "./inputs/TextInputLaunchpadRequired";
-import { TextInputLaunchpadRequiredSublabel } from "./inputs/TextInputLaunchpadRequiredSublabel";
-import { NewCollectionMintFormValues } from "../CreateCollection.type";
-
-import { BrandText } from "@/components/BrandText";
-import { SpacerColumn } from "@/components/spacer";
-import { neutral55, neutral77 } from "@/utils/style/colors";
-import {
- fontSemibold13,
- fontSemibold14,
- fontSemibold20,
-} from "@/utils/style/fonts";
-import { layout } from "@/utils/style/layout";
-
-const CreateWhitelistTabItems = {
- nowhitelist: {
- name: "No whitelist",
- },
- existinghitelist: {
- name: "Existing whitelist",
- },
- newhitelist: {
- name: "New whitelist",
- },
-};
-
-const CreateRoyaltyTabItems = {
- noroyalty: {
- name: "No royalty",
- },
- configureroyaltydetails: {
- name: "Configure royalty details",
- },
-};
-
-export const LaunchpadMinting: React.FC = () => {
- const { control } = useForm({
- defaultValues: {
- token: "",
- unitPrice: "",
- perAddressLimit: "",
- startTime: "",
- },
- mode: "onBlur",
- });
-
- const [selectedWhitelistTab, setSelectedWhitelistTab] =
- useState("nowhitelist");
-
- const [selectedRoyaltyTab, setSelectedRoyaltyTab] =
- useState("noroyalty");
-
- return (
-
-
- Minting details
-
-
- Information about your minting settings
-
-
-
-
- label="Number of Tokens "
- placeHolder="0"
- name="token"
- control={control}
- />
-
-
- label="Unit Price"
- sublabel={
-
-
- Price of each token (min. 50 TORI)
-
-
- }
- placeHolder="0"
- name="unitPrice"
- control={control}
- />
-
-
- label="Per Address Limit "
- sublabel={
-
-
- Start time for the minting
-
-
- }
- placeHolder="0"
- name="perAddressLimit"
- control={control}
- />
-
-
- label="Start Time "
- placeHolder="--.--.---- --:--"
- name="startTime"
- control={control}
- />
-
-
-
- {selectedWhitelistTab === "existinghitelist" && }
- {selectedWhitelistTab === "newhitelist" && }
-
-
-
- {selectedRoyaltyTab === "configureroyaltydetails" && (
-
- )}
-
-
- );
-};
diff --git a/packages/screens/Launchpad/components/LaunchpadSteper.tsx b/packages/screens/Launchpad/components/LaunchpadSteper.tsx
deleted file mode 100644
index 1e490f0d2f..0000000000
--- a/packages/screens/Launchpad/components/LaunchpadSteper.tsx
+++ /dev/null
@@ -1,107 +0,0 @@
-import React from "react";
-import { TouchableOpacity, View } from "react-native";
-
-import ChevronRightSvg from "../../../../assets/icons/chevron-right.svg";
-
-import { BrandText } from "@/components/BrandText";
-import { SVG } from "@/components/SVG";
-import { PrimaryBox } from "@/components/boxes/PrimaryBox";
-import {
- neutral17,
- neutral22,
- neutral77,
- primaryColor,
- primaryTextColor,
-} from "@/utils/style/colors";
-import { fontSemibold14 } from "@/utils/style/fonts";
-import { layout } from "@/utils/style/layout";
-
-interface LaunchpadSteperProps {
- step: number;
- onStepPress: (item: number) => void;
- stepOptions: { key: number; title: string }[];
-}
-
-export const LaunchpadSteper = ({
- step,
- onStepPress,
- stepOptions,
-}: LaunchpadSteperProps) => {
- return (
-
- {stepOptions.map((item, index) => (
- {
- onStepPress(item.key);
- }}
- key={index}
- style={[
- {
- flexDirection: "row",
- alignItems: "center",
- justifyContent: "center",
- paddingHorizontal: layout.spacing_x2,
- paddingVertical: layout.spacing_x1,
- },
- ]}
- >
-
-
- {item.key}
-
-
-
- {item.title}
-
- {stepOptions.length !== index + 1 && (
-
- )}
-
- ))}
-
- );
-};
diff --git a/packages/screens/Launchpad/components/LaunchpadTeamandInvestment.tsx b/packages/screens/Launchpad/components/LaunchpadTeamandInvestment.tsx
deleted file mode 100644
index cc0ddf8e59..0000000000
--- a/packages/screens/Launchpad/components/LaunchpadTeamandInvestment.tsx
+++ /dev/null
@@ -1,153 +0,0 @@
-import React from "react";
-import { useForm } from "react-hook-form";
-import { View } from "react-native";
-
-import { TextInputLaunchpadRequiredSublabel } from "./inputs/TextInputLaunchpadRequiredSublabel";
-import { TeamandInvestmentFormValues } from "../CreateCollection.type";
-
-import { BrandText } from "@/components/BrandText";
-import { SpacerColumn } from "@/components/spacer";
-import { neutral55, neutral77 } from "@/utils/style/colors";
-import {
- fontSemibold13,
- fontSemibold14,
- fontSemibold20,
-} from "@/utils/style/fonts";
-
-export const LaunchpadTeamandInvestment: React.FC = () => {
- const { control } = useForm({
- defaultValues: {
- teamDesciption: "",
- teamLink: "",
- partner: "",
- investDesciption: "",
- investLink: "",
- roadmap: "",
- },
- mode: "onBlur",
- });
-
- return (
-
-
- Team & Investments
-
-
- Fill the information about the team and investors
-
-
-
-
- label="Describe your team: "
- sublabel={
-
-
- 1. How many core members are you? ( Working on the project daily
- )
-
-
- 2. Who does what in your team?
-
-
- 3. Past accomplishments or projects?
-
-
- 4. How did you guys meet?
-
-
- 5. Please add Linkedin links for all your members.
-
-
- }
- placeHolder="Describe here..."
- name="teamDesciption"
- control={control}
- />
-
-
- required={false}
- label="Team links and attachments "
- sublabel={
-
-
- Please provide any relevant links regarding your team. You can
- also post a google drive link.
-
-
- }
- placeHolder="Type here..."
- name="teamDesciption"
- control={control}
- />
-
-
- label="Do you have any partners on the project? "
- sublabel={
-
-
- If yes, who are they? What do they do for you?
-
-
- }
- placeHolder="Type here..."
- name="partner"
- control={control}
- />
-
-
- label="What have you invested in this project so far? "
- sublabel={
-
-
- 1. How much upfront capital has been invested?
-
-
- 2. Have you raised outside funding for the project?
-
-
- 3. How long has the project been worked on?
-
-
- 4. Is there a proof of concept or demo to show?
-
-
- }
- placeHolder="Type here..."
- name="investDesciption"
- control={control}
- />
-
-
- required={false}
- label="Investment links and attachments "
- sublabel={
-
-
- Please provide any relevant links regarding your investment. You
- can also post a google drive link.
-
-
- }
- placeHolder="Type here..."
- name="investLink"
- control={control}
- />
-
-
- label="Whitepaper and roadmap: "
- sublabel={
-
-
- Please provide any relevant links regarding your whitepaper and
- roadmap. You can also post a google drive link.
-
-
- }
- placeHolder="Type here..."
- name="roadmap"
- control={control}
- />
-
-
- );
-};
diff --git a/packages/screens/Launchpad/components/NavBar.tsx b/packages/screens/Launchpad/components/NavBar.tsx
deleted file mode 100644
index 2cf9e7819e..0000000000
--- a/packages/screens/Launchpad/components/NavBar.tsx
+++ /dev/null
@@ -1,79 +0,0 @@
-import React from "react";
-import { TouchableOpacity, View } from "react-native";
-
-import { BrandText } from "@/components/BrandText";
-import {
- neutral33,
- primaryColor,
- primaryTextColor,
- secondaryColor,
-} from "@/utils/style/colors";
-
-interface NavDefinition {
- name: string;
-}
-
-export const NavBar = ({
- items,
- onSelect,
- selected,
-}: {
- items: T;
- selected: keyof T;
- onSelect: (key: keyof T) => void;
-}) => {
- return (
-
-
- {getKeys(items).map((key) => {
- return (
- {
- onSelect(key);
- }}
- style={{
- height: "100%",
- borderRightColor: neutral33,
- borderRightWidth: 1,
- flex: 1,
- }}
- >
-
-
- {items[key].name}
-
-
-
- );
- })}
-
-
- );
-};
-const getKeys = Object.keys as (obj: T) => (keyof T)[];
diff --git a/packages/screens/Launchpad/components/NewWhitelist.tsx b/packages/screens/Launchpad/components/NewWhitelist.tsx
deleted file mode 100644
index 722b8edb9b..0000000000
--- a/packages/screens/Launchpad/components/NewWhitelist.tsx
+++ /dev/null
@@ -1,126 +0,0 @@
-import React, { useState } from "react";
-import { useForm } from "react-hook-form";
-import { View } from "react-native";
-
-import { TextInputLaunchpadRequiredSublabel } from "./inputs/TextInputLaunchpadRequiredSublabel";
-import { NewWhitelistDetailsFormValues } from "../CreateCollection.type";
-
-import { BrandText } from "@/components/BrandText";
-import { CsvTextRowsInput } from "@/components/inputs/CsvTextRowsInput";
-import { Separator } from "@/components/separators/Separator";
-import { SpacerColumn } from "@/components/spacer";
-import { neutral55, neutral77 } from "@/utils/style/colors";
-import {
- fontSemibold13,
- fontSemibold14,
- fontSemibold20,
-} from "@/utils/style/fonts";
-
-export const NewWhitelist: React.FC = () => {
- const { control } = useForm({
- defaultValues: {
- unitPrice: "",
- memberLimit: "",
- perAddresaLimit: "",
- startTime: "",
- endTime: "",
- },
- mode: "onBlur",
- });
- const [whitelistedAddresses, setWhitelistedAddresses] = useState();
-
- return (
-
-
- Whitelist Minting Details
-
-
- Information about your minting settings
-
-
-
- label="Unit Price "
- placeHolder="0"
- name="unitPrice"
- sublabel={
-
-
- Token price for whitelisted addressess (min. 25 TORI)
-
-
- }
- control={control}
- />
-
-
- label="Member Limit "
- placeHolder="0"
- name="memberLimit"
- sublabel={
-
-
- Maximum number of whitelisted addresses
-
-
- }
- control={control}
- />
-
-
- label="Per Address Limit"
- placeHolder="0"
- name="perAddresaLimit"
- sublabel={
-
-
- Maximum number of tokens per whitelisted address
-
-
- }
- control={control}
- />
-
-
- label="Start Time "
- placeHolder="0"
- name="startTime"
- sublabel={
-
-
- Start time for minting tokens to whitelisted addresses
-
-
- }
- control={control}
- />
-
-
- label="End Time "
- placeHolder="0"
- name="endTime"
- sublabel={
-
-
- End time for minting tokens to whitelisted addresses
-
-
- }
- control={control}
- />
-
-
-
- Whitelist File
-
-
- TXT file that contains the whitelisted addresses
-
-
-
- setWhitelistedAddresses(rows)}
- />
-
- );
-};
diff --git a/packages/screens/Launchpad/components/UriTab.tsx b/packages/screens/Launchpad/components/UriTab.tsx
deleted file mode 100644
index cb35085845..0000000000
--- a/packages/screens/Launchpad/components/UriTab.tsx
+++ /dev/null
@@ -1,66 +0,0 @@
-import React from "react";
-import { useForm } from "react-hook-form";
-import { View } from "react-native";
-
-import { TextInputLaunchpadRequired } from "./inputs/TextInputLaunchpadRequired";
-import { ExistingBaseUrlFormValues } from "../CreateCollection.type";
-
-import { BrandText } from "@/components/BrandText";
-import { SpacerColumn } from "@/components/spacer";
-import { neutral77 } from "@/utils/style/colors";
-import { fontSemibold14 } from "@/utils/style/fonts";
-import { layout } from "@/utils/style/layout";
-
-export const UriTab: React.FC = () => {
- const { control } = useForm({
- defaultValues: {
- baseTokenUri: "",
- coverImageUrl: "",
- },
- mode: "onBlur",
- });
-
- return (
-
-
-
-
- Though Teritori's tr721 contract allows for off-chain metadata
- storage, it is recommended to use a decentralized storage solution,
- such as IPFS. You may head over to NFT.Storage and upload your
- assets & metadata manually to get a base URI for your collection.
-
-
-
-
-
- label="Base Token URI"
- placeHolder="ipfs://"
- name="baseTokenUri"
- control={control}
- />
-
-
- name="coverImageUrl"
- label="Cover Image URL"
- placeHolder="ipfs://"
- control={control}
- />
-
-
-
- );
-};
diff --git a/packages/screens/Launchpad/components/dropdowns/DropdownProps.type.ts b/packages/screens/Launchpad/components/dropdowns/DropdownProps.type.ts
deleted file mode 100644
index 1a60de0b94..0000000000
--- a/packages/screens/Launchpad/components/dropdowns/DropdownProps.type.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-import { ViewStyle } from "react-native";
-
-export interface SelectionDropdownProps {
- style?: ViewStyle;
- onDropdownClosed?: () => void;
- dropdownOptions: string[];
- placeHolder?: string;
- setItem: (item: string) => void;
- item?: string;
- label: string;
-}
-
-export interface MultipleSelectionDropdownProps {
- style?: ViewStyle;
- onDropdownClosed?: () => void;
- dropdownOptions: string[];
- placeHolder?: string;
- setItems: (item: string) => void;
- items: string[];
- label: string;
- sublabel?: React.ReactElement;
-}
diff --git a/packages/screens/Launchpad/components/dropdowns/MultipleSelectionDropdown.tsx b/packages/screens/Launchpad/components/dropdowns/MultipleSelectionDropdown.tsx
deleted file mode 100644
index 71fe7a422c..0000000000
--- a/packages/screens/Launchpad/components/dropdowns/MultipleSelectionDropdown.tsx
+++ /dev/null
@@ -1,145 +0,0 @@
-import React from "react";
-import { TouchableOpacity, View } from "react-native";
-
-import chevronDownSVG from "./../../../../../assets/icons/chevron-down.svg";
-import chevronUpSVG from "./../../../../../assets/icons/chevron-up.svg";
-import { MultipleSelectionDropdownProps } from "./DropdownProps.type";
-import { CheckboxDappStore } from "../../../DAppStore/components/CheckboxDappStore";
-
-import { BrandText } from "@/components/BrandText";
-import { SVG } from "@/components/SVG";
-import { PrimaryBox } from "@/components/boxes/PrimaryBox";
-import { TertiaryBox } from "@/components/boxes/TertiaryBox";
-import { Label } from "@/components/inputs/TextInputCustom";
-import { Separator } from "@/components/separators/Separator";
-import { SpacerColumn } from "@/components/spacer";
-import { useDropdowns } from "@/hooks/useDropdowns";
-import {
- neutral17,
- neutral44,
- neutral55,
- neutral77,
- secondaryColor,
-} from "@/utils/style/colors";
-import { fontMedium14, fontSemibold14 } from "@/utils/style/fonts";
-import { layout } from "@/utils/style/layout";
-
-export const MultipleSelectionDropdown = ({
- style,
- dropdownOptions,
- placeHolder,
- items,
- label,
- setItems,
- sublabel,
-}: MultipleSelectionDropdownProps) => {
- const [isDropdownOpen, setDropdownState, ref] = useDropdowns();
-
- return (
-
-
-
- {sublabel && sublabel}
-
-
-
- setDropdownState()}
- >
-
- {items?.length > 0 ? items.join(", ") : placeHolder}
-
-
-
-
-
- {isDropdownOpen && (
-
- {dropdownOptions.map((item, index) => (
- {
- setItems(item);
- }}
- key={index}
- style={{
- paddingTop: layout.spacing_x1_5,
- width: "100%",
- }}
- >
-
-
-
-
- {item}
-
-
- {dropdownOptions.length - 1 !== index && (
- <>
-
-
- >
- )}
-
- ))}
-
- )}
-
-
- );
-};
diff --git a/packages/screens/Launchpad/components/dropdowns/SelectionDropdown.tsx b/packages/screens/Launchpad/components/dropdowns/SelectionDropdown.tsx
deleted file mode 100644
index e6e9154a00..0000000000
--- a/packages/screens/Launchpad/components/dropdowns/SelectionDropdown.tsx
+++ /dev/null
@@ -1,133 +0,0 @@
-import React from "react";
-import { TouchableOpacity, View } from "react-native";
-
-import chevronDownSVG from "./../../../../../assets/icons/chevron-down.svg";
-import chevronUpSVG from "./../../../../../assets/icons/chevron-up.svg";
-import { SelectionDropdownProps } from "./DropdownProps.type";
-
-import { BrandText } from "@/components/BrandText";
-import { SVG } from "@/components/SVG";
-import { PrimaryBox } from "@/components/boxes/PrimaryBox";
-import { TertiaryBox } from "@/components/boxes/TertiaryBox";
-import { Label } from "@/components/inputs/TextInputCustom";
-import { Separator } from "@/components/separators/Separator";
-import { SpacerColumn } from "@/components/spacer";
-import { useDropdowns } from "@/hooks/useDropdowns";
-import {
- neutral17,
- neutral44,
- neutral55,
- neutral77,
- secondaryColor,
-} from "@/utils/style/colors";
-import { fontMedium14, fontSemibold14 } from "@/utils/style/fonts";
-import { layout } from "@/utils/style/layout";
-
-export const SelectionDropdown = ({
- style,
- dropdownOptions,
- placeHolder,
- item,
- label,
- setItem,
-}: SelectionDropdownProps) => {
- const [isDropdownOpen, setDropdownState, ref] = useDropdowns();
-
- return (
-
-
-
-
-
- setDropdownState()}
- >
-
- {item ? item : placeHolder}
-
-
-
-
-
- {isDropdownOpen && (
-
- {dropdownOptions.map((item, index) => (
- {
- setDropdownState(false);
- setItem(item);
- }}
- key={index}
- style={{
- paddingTop: layout.spacing_x1_5,
- width: "100%",
- }}
- >
-
- {item}
-
-
- {dropdownOptions.length - 1 !== index && (
- <>
-
-
- >
- )}
-
- ))}
-
- )}
-
-
- );
-};
diff --git a/packages/screens/Launchpad/components/inputs/TextInputLaunchpad.tsx b/packages/screens/Launchpad/components/inputs/TextInputLaunchpad.tsx
deleted file mode 100644
index 05caff1d5e..0000000000
--- a/packages/screens/Launchpad/components/inputs/TextInputLaunchpad.tsx
+++ /dev/null
@@ -1,42 +0,0 @@
-import React from "react";
-import { Control, FieldValues, Path } from "react-hook-form";
-import { TextInputProps } from "react-native";
-
-import { TextInputCustom } from "@/components/inputs/TextInputCustom";
-import { layout } from "@/utils/style/layout";
-
-interface TextInputCustomProps
- extends Omit {
- label: string;
- placeHolder: string;
- control: Control;
- name: Path;
- sublabel?: React.ReactElement;
- multiline?: boolean;
- required?: boolean;
-}
-
-export const TextInputLaunchpad = ({
- control,
- name,
- label,
- placeHolder,
- sublabel,
- required = false,
-}: TextInputCustomProps) => {
- return (
-
- rules={{ required }}
- labelStyle={{ maxWidth: 416 }}
- label={label}
- placeHolder={placeHolder}
- sublabel={sublabel}
- name={name}
- control={control}
- variant="labelOutside"
- containerStyle={{ marginBottom: layout.spacing_x2 }}
- boxMainContainerStyle={{ minHeight: 0 }}
- height={40}
- />
- );
-};
diff --git a/packages/screens/Launchpad/components/inputs/TextInputLaunchpadRequired.tsx b/packages/screens/Launchpad/components/inputs/TextInputLaunchpadRequired.tsx
deleted file mode 100644
index 81cace33b9..0000000000
--- a/packages/screens/Launchpad/components/inputs/TextInputLaunchpadRequired.tsx
+++ /dev/null
@@ -1,34 +0,0 @@
-import React from "react";
-import { Control, FieldValues, Path } from "react-hook-form";
-import { TextInputProps } from "react-native";
-
-import { TextInputLaunchpad } from "./TextInputLaunchpad";
-
-interface TextInputCustomProps
- extends Omit {
- label: string;
- placeHolder: string;
- control: Control;
- name: Path;
- sublabel?: React.ReactElement;
- multiline?: boolean;
- required?: boolean;
-}
-
-export const TextInputLaunchpadRequired = ({
- control,
- name,
- label,
- placeHolder,
- required = true,
-}: TextInputCustomProps) => {
- return (
-
- required={required}
- label={label}
- placeHolder={placeHolder}
- name={name}
- control={control}
- />
- );
-};
diff --git a/packages/screens/Launchpad/components/inputs/TextInputLaunchpadRequiredSublabel.tsx b/packages/screens/Launchpad/components/inputs/TextInputLaunchpadRequiredSublabel.tsx
deleted file mode 100644
index 197ba39c15..0000000000
--- a/packages/screens/Launchpad/components/inputs/TextInputLaunchpadRequiredSublabel.tsx
+++ /dev/null
@@ -1,35 +0,0 @@
-import React from "react";
-import { Control, FieldValues, Path } from "react-hook-form";
-import { TextInputProps } from "react-native";
-
-import { TextInputLaunchpad } from "./TextInputLaunchpad";
-
-interface TextInputCustomProps
- extends Omit {
- label: string;
- placeHolder: string;
- control: Control;
- name: Path;
- sublabel: React.ReactElement;
- required?: boolean;
-}
-
-export const TextInputLaunchpadRequiredSublabel = ({
- control,
- name,
- label,
- placeHolder,
- sublabel,
- required = true,
-}: TextInputCustomProps) => {
- return (
-
- required={required}
- label={label}
- placeHolder={placeHolder}
- sublabel={sublabel}
- name={name}
- control={control}
- />
- );
-};
diff --git a/packages/screens/Launchpad/components/modals/MetadataUpdateModal.tsx b/packages/screens/Launchpad/components/modals/MetadataUpdateModal.tsx
deleted file mode 100644
index 8bef7d6134..0000000000
--- a/packages/screens/Launchpad/components/modals/MetadataUpdateModal.tsx
+++ /dev/null
@@ -1,147 +0,0 @@
-import React from "react";
-import { useForm } from "react-hook-form";
-import { Image, View } from "react-native";
-
-import ModalBase from "../../../../components/modals/ModalBase";
-import { NewMetadataDetailsFormValues } from "../../CreateCollection.type";
-import { TextInputLaunchpadRequired } from "../inputs/TextInputLaunchpadRequired";
-
-import { BrandText } from "@/components/BrandText";
-import { PrimaryBox } from "@/components/boxes/PrimaryBox";
-import { PrimaryButton } from "@/components/buttons/PrimaryButton";
-import { Separator } from "@/components/separators/Separator";
-import { neutral77, secondaryColor } from "@/utils/style/colors";
-import { fontSemibold16, fontSemibold20 } from "@/utils/style/fonts";
-import { layout } from "@/utils/style/layout";
-import { LocalFileData } from "@/utils/types/files";
-
-export const MetadataUpdateModal: React.FC<{
- onClose: () => void;
- isVisible: boolean;
- item: LocalFileData;
-}> = ({ onClose, isVisible, item }) => {
- const { control } = useForm({
- defaultValues: {
- name: "",
- description: "",
- externalURL: "",
- youtubeURL: "",
- attributes: "",
- },
- mode: "onBlur",
- });
-
- return (
-
-
-
-
-
-
- Update Metadata
-
-
- Asset filename: {item?.fileName}
-
-
-
- }
- hideMainSeparator
- childrenBottom={
-
-
-
-
-
-
- }
- >
-
-
-
-
- name="name"
- label="Name"
- control={control}
- placeHolder="Token name"
- />
-
-
- name="description"
- label="Description"
- control={control}
- placeHolder="Token description"
- />
-
-
- name="externalURL"
- label="External URL"
- control={control}
- placeHolder="https://"
- />
-
-
- name="youtubeURL"
- label="Youtube URL"
- control={control}
- placeHolder="https://"
- />
-
-
- name="attributes"
- label="Attributes"
- control={control}
- placeHolder="Enter trait types and values"
- />
-
-
- );
-};
diff --git a/packages/screens/LaunchpadApplications/LaunchpadApplicationsScreen.tsx b/packages/screens/LaunchpadApplications/LaunchpadApplicationsScreen.tsx
deleted file mode 100644
index 141a5d296d..0000000000
--- a/packages/screens/LaunchpadApplications/LaunchpadApplicationsScreen.tsx
+++ /dev/null
@@ -1,112 +0,0 @@
-import React, { useState } from "react";
-import { View } from "react-native";
-
-import { LaunchpadApplicationsTable } from "./component/LaunchpadApplicationsTable";
-
-import { BrandText } from "@/components/BrandText";
-import { ScreenContainer } from "@/components/ScreenContainer";
-import { HighVolSortButton } from "@/components/sorts/HighVolSortButton";
-import { Tabs } from "@/components/tabs/Tabs";
-import { useAppNavigation } from "@/hooks/navigation/useAppNavigation";
-import { useIsMobile } from "@/hooks/useIsMobile";
-import { neutral33 } from "@/utils/style/colors";
-import { fontSemibold20, fontSemibold28 } from "@/utils/style/fonts";
-import { layout } from "@/utils/style/layout";
-
-type TabsListType = "pendingApllications" | "pendingConfirmations";
-
-const dummyData = {
- rank: 1,
- collectionNameData: "The R!ot",
- collectionNetwork: "teritori",
- TwitterURL: "https://www.lipsum.com/",
- DiscordURL: "https://www.lipsum.com/",
- expectedTotalSupply: 3000,
- expectedPublicMintPrice: "550 L",
- expectedMintDate: new Date(),
-};
-
-export const LaunchpadApplicationsScreen: React.FC = () => {
- const navigation = useAppNavigation();
- const isMobile = useIsMobile();
-
- const tabs = {
- pendingApllications: {
- name: "Pending Apllications",
- badgeCount: 32,
- },
- pendingConfirmations: {
- name: "Pending Confirmations",
- badgeCount: 42,
- },
- };
-
- const [selectedTab, setSelectedTab] = useState(
- "pendingApllications",
- );
-
- return (
- >}
- headerChildren={
- Administration Dashboard
- }
- responsive
- onBackPress={() => navigation.goBack()}
- >
-
-
- Launchpad Applications
-
-
-
-
-
- {!isMobile && (
- {}} // TODO: don't forget to rewrite onPress function if possible
- height={42}
- />
- )}
-
-
-
-
-
-
- );
-};
diff --git a/packages/screens/LaunchpadApplications/component/LaunchpadApplicationsTable.tsx b/packages/screens/LaunchpadApplications/component/LaunchpadApplicationsTable.tsx
deleted file mode 100644
index 8dc32a0cfb..0000000000
--- a/packages/screens/LaunchpadApplications/component/LaunchpadApplicationsTable.tsx
+++ /dev/null
@@ -1,167 +0,0 @@
-import moment from "moment";
-import React from "react";
-import { FlatList, View } from "react-native";
-
-import dotsSVG from "../../../../assets/icons/dots.svg";
-
-import { SVG } from "@/components/SVG";
-import { CollectionNameCell } from "@/components/applicationTable/CollectionNameCell";
-import { InnerCellText } from "@/components/applicationTable/InnerCellText";
-import { LinkIconAndRedirect } from "@/components/applicationTable/LinkIconAndRedirect";
-import { TableHeader } from "@/components/table/TableHeader";
-import { TableColumns } from "@/components/table/utils";
-import { useIsMobile } from "@/hooks/useIsMobile";
-import { mineShaftColor } from "@/utils/style/colors";
-import { layout, screenContentMaxWidthLarge } from "@/utils/style/layout";
-
-const TABLE_COLUMNS: TableColumns = {
- rank: {
- label: "#",
- flex: 1,
- },
- collectionNameData: {
- label: "Collection Name",
- flex: 5,
- },
- collectionNetwork: {
- label: "Collection Network",
- flex: 3,
- },
- TwitterURL: {
- label: "Twitter URL",
- flex: 2,
- },
- DiscordURL: {
- label: "Discord URL",
- flex: 2,
- },
- expectedTotalSupply: {
- label: "Expected Total Supply",
- flex: 3,
- },
- expectedPublicMintPrice: {
- label: "Expected Public Mint Price",
- flex: 3,
- },
- expectedMintDate: {
- label: "Expected Mint Date",
- flex: 3,
- },
-};
-
-export const LaunchpadApplicationsTable: React.FC<{
- rows: any[];
-}> = ({ rows }) => {
- const isMobile = useIsMobile();
-
- return (
-
-
-
- }
- keyExtractor={(item) => item.id}
- style={{
- minHeight: 220,
- borderTopColor: mineShaftColor,
- borderTopWidth: 1,
- }}
- />
-
- );
-};
-
-const ApplicationRowData: React.FC<{ rowData: any }> = ({ rowData }) => {
- const isMobile = useIsMobile();
-
- return (
-
-
- {rowData.rank}
-
-
-
- {rowData["collectionNetwork"]}
-
- {!isMobile && (
- <>
-
-
-
- {rowData.expectedTotalSupply}
-
-
- {rowData.expectedPublicMintPrice}
-
-
-
- {moment(rowData.expectedMintDate).format("MMM D YYYY")}
-
-
-
- >
- )}
-
- );
-};
diff --git a/packages/screens/Projects/ProjectsMakeRequestScreen/ShortPresentation.tsx b/packages/screens/Projects/ProjectsMakeRequestScreen/ShortPresentation.tsx
index 102e6d8a61..635ccb565d 100644
--- a/packages/screens/Projects/ProjectsMakeRequestScreen/ShortPresentation.tsx
+++ b/packages/screens/Projects/ProjectsMakeRequestScreen/ShortPresentation.tsx
@@ -7,9 +7,9 @@ import { MakeRequestFooter } from "./Footer";
import addSVG from "../../../../assets/icons/add.svg";
import { BrandText } from "../../../components/BrandText";
import { PrimaryButtonOutline } from "../../../components/buttons/PrimaryButtonOutline";
-import { FileUploader } from "../../../components/fileUploader";
import { RoundedGradientImage } from "../../../components/images/RoundedGradientImage";
import { TextInputCustom } from "../../../components/inputs/TextInputCustom";
+import { FileUploader } from "../../../components/inputs/fileUploader";
import { SpacerColumn } from "../../../components/spacer";
import { useNameSearch } from "../../../hooks/search/useNameSearch";
import { useSelectedNetworkId } from "../../../hooks/useSelectedNetwork";
diff --git a/packages/screens/ReadyLaunchpadApplications/ReadyLaunchpadApplicationsScreen.tsx b/packages/screens/ReadyLaunchpadApplications/ReadyLaunchpadApplicationsScreen.tsx
deleted file mode 100644
index 8bfb6bba11..0000000000
--- a/packages/screens/ReadyLaunchpadApplications/ReadyLaunchpadApplicationsScreen.tsx
+++ /dev/null
@@ -1,114 +0,0 @@
-import React, { useState } from "react";
-import { View } from "react-native";
-
-import { ReadyLaunchApplicationTable } from "./component/ReadyLaunchApplicationTable";
-
-import { BrandText } from "@/components/BrandText";
-import { ScreenContainer } from "@/components/ScreenContainer";
-import { HighVolSortButton } from "@/components/sorts/HighVolSortButton";
-import { Tabs } from "@/components/tabs/Tabs";
-import { useAppNavigation } from "@/hooks/navigation/useAppNavigation";
-import { useIsMobile } from "@/hooks/useIsMobile";
-import { neutral33 } from "@/utils/style/colors";
-import { fontSemibold20, fontSemibold28 } from "@/utils/style/fonts";
-import { layout } from "@/utils/style/layout";
-
-type TabsListType = "readyForListing" | "waitingForApproval";
-
-const dummyData = {
- rank: 1,
- collectionNameData: "The R!ot",
- collectionNetwork: "teritori",
- projectReadinessForMint: "Complete and ready to mint",
- whitelistQuantity: "0",
- premiumMarketingPackage: "No",
- basicMarketingPackage: "Yes",
-};
-
-export const ReadyLaunchpadApplicationsScreen: React.FC = () => {
- const navigation = useAppNavigation();
- const isMobile = useIsMobile();
-
- const tabs = {
- readyForListing: {
- name: "Ready for listing",
- badgeCount: 32,
- },
- waitingForApproval: {
- name: "Waiting for approval",
- badgeCount: 42,
- },
- };
-
- const [selectedTab, setSelectedTab] =
- useState("readyForListing");
-
- return (
- >}
- headerChildren={
- Administration Dashboard
- }
- responsive
- onBackPress={() => navigation.goBack()}
- >
-
-
- Launchpad Applications
-
-
-
-
-
- {!isMobile && (
- {}} // TODO: don't forget to rewrite onPress function if possible
- height={42}
- />
- )}
-
-
-
-
-
-
- );
-};
diff --git a/packages/screens/ReadyLaunchpadApplications/component/CellBadgeRow.tsx b/packages/screens/ReadyLaunchpadApplications/component/CellBadgeRow.tsx
deleted file mode 100644
index fecbcfb36c..0000000000
--- a/packages/screens/ReadyLaunchpadApplications/component/CellBadgeRow.tsx
+++ /dev/null
@@ -1,27 +0,0 @@
-import React from "react";
-import { View, ViewStyle } from "react-native";
-
-import { InnerCellText } from "@/components/applicationTable/InnerCellText";
-import { lightblue, neutral00 } from "@/utils/style/colors";
-
-export const CellBadgeRow: React.FC<{
- style: ViewStyle;
- text: string;
-}> = ({ style, text }) => {
- return (
-
-
- {text}
-
-
- );
-};
diff --git a/packages/screens/ReadyLaunchpadApplications/component/ReadyLaunchApplicationTable.tsx b/packages/screens/ReadyLaunchpadApplications/component/ReadyLaunchApplicationTable.tsx
deleted file mode 100644
index 25d5ff8d31..0000000000
--- a/packages/screens/ReadyLaunchpadApplications/component/ReadyLaunchApplicationTable.tsx
+++ /dev/null
@@ -1,167 +0,0 @@
-import React from "react";
-import { FlatList, View } from "react-native";
-
-import { CellBadgeRow } from "./CellBadgeRow";
-import dotsSVG from "../../../../assets/icons/dots.svg";
-
-import { BrandText } from "@/components/BrandText";
-import { SVG } from "@/components/SVG";
-import { CollectionNameCell } from "@/components/applicationTable/CollectionNameCell";
-import { InnerCellText } from "@/components/applicationTable/InnerCellText";
-import { TableHeader } from "@/components/table/TableHeader";
-import { TableColumns } from "@/components/table/utils";
-import { useIsMobile } from "@/hooks/useIsMobile";
-import { lightblue, mineShaftColor, neutral00 } from "@/utils/style/colors";
-import { fontSemibold11, fontSemibold13 } from "@/utils/style/fonts";
-import { layout, screenContentMaxWidthLarge } from "@/utils/style/layout";
-
-const TABLE_COLUMNS: TableColumns = {
- rank: {
- label: "#",
- flex: 1,
- },
- collectionNameData: {
- label: "Collection Name",
- flex: 5,
- },
- collectionNetwork: {
- label: "Collection Network",
- flex: 3,
- },
- projectReadinessForMint: {
- label: "Project Readiness for Mint",
- flex: 3,
- },
- whitelistQuantity: {
- label: "Whitelist quantity",
- flex: 2,
- },
- premiumMarketingPackage: {
- label: "Premium marketing package",
- flex: 2,
- },
- basicMarketingPackage: {
- label: "Basic marketing package",
- flex: 2,
- },
-};
-
-export const ReadyLaunchApplicationTable: React.FC<{
- rows: any[];
-}> = ({ rows }) => {
- const isMobile = useIsMobile();
-
- return (
-
-
- }
- keyExtractor={(item) => item.id}
- style={{
- minHeight: 220,
- borderTopColor: mineShaftColor,
- borderTopWidth: 1,
- }}
- />
-
- );
-};
-
-const ApplicationRowData: React.FC<{ rowData: any }> = ({ rowData }) => {
- const isMobile = useIsMobile();
-
- return (
-
-
- {rowData.rank}
-
-
-
- {rowData["collectionNetwork"]}
-
- {!isMobile && (
- <>
-
-
-
-
-
-
- {rowData.basicMarketingPackage}
-
-
-
-
- >
- )}
-
- );
-};
diff --git a/packages/screens/UserPublicProfile/components/mintUploader/mintUploader.web.tsx b/packages/screens/UserPublicProfile/components/mintUploader/mintUploader.web.tsx
index 1468f83e0a..272b3f8ec7 100644
--- a/packages/screens/UserPublicProfile/components/mintUploader/mintUploader.web.tsx
+++ b/packages/screens/UserPublicProfile/components/mintUploader/mintUploader.web.tsx
@@ -9,8 +9,8 @@ import { DeleteButton } from "@/components/FilePreview/DeleteButton";
import { OptimizedImage } from "@/components/OptimizedImage";
import { SVG } from "@/components/SVG";
import { PrimaryBox } from "@/components/boxes/PrimaryBox";
-import { FileUploaderProps } from "@/components/fileUploader/FileUploader.type";
-import { formatFile } from "@/components/fileUploader/formatFile";
+import { FileUploaderProps } from "@/components/inputs/fileUploader/FileUploader.type";
+import { formatFile } from "@/components/inputs/fileUploader/formatFile";
import { AnimatedLoader } from "@/components/loaders/AnimatedLoader";
import { SpacerColumn } from "@/components/spacer";
import { useFeedbacks } from "@/context/FeedbacksProvider";
diff --git a/packages/utils/navigation.ts b/packages/utils/navigation.ts
index ecb6498e21..adff9bbb23 100644
--- a/packages/utils/navigation.ts
+++ b/packages/utils/navigation.ts
@@ -30,15 +30,9 @@ export type RootStackParamList = {
id: string;
};
RiotersFooter: undefined;
- AdministrationDashboard: undefined;
- LaunchpadApplications: undefined;
- ApplicationReview: undefined;
- ReadyLaunchpadApplications: undefined;
- AllProjectAdministrationDash: undefined;
Launchpad: undefined;
LaunchpadApply: undefined;
- LaunchpadCreate: undefined;
LaunchpadERC20: undefined;
LaunchpadERC20Tokens?: { network?: string };
@@ -203,11 +197,6 @@ const navConfig: {
GovernanceProposal: "governance/:id",
UserPublicProfile: "user/:id/:tab?",
RiotersFooter: "rioters-footer",
- AdministrationDashboard: "launchpad/admin",
- LaunchpadApplications: "launchpad/applications",
- ApplicationReview: "launchpad/application-review",
- ReadyLaunchpadApplications: "launchpad/ready-applications",
- AllProjectAdministrationDash: "launchpad/all-projects",
// === RiotGame
RiotGame: "riot-game",
@@ -223,7 +212,6 @@ const navConfig: {
// ==== Launchpad
Launchpad: "launchpad",
LaunchpadApply: "launchpad/apply",
- LaunchpadCreate: "launchpad/create",
// ==== Launchpad ERC20
LaunchpadERC20: "launchpad-erc20",
diff --git a/packages/utils/style/colors.ts b/packages/utils/style/colors.ts
index da6c983192..0e43f3cc1f 100644
--- a/packages/utils/style/colors.ts
+++ b/packages/utils/style/colors.ts
@@ -77,8 +77,6 @@ export const currencyATOMcolor = "#5C26F5";
export const currencyOSMOcolor = "#A401D4";
export const currencyGNOcolor = "#232800";
-export const lightblue = "#D2DEFC";
-
// Returns hexa color modified with alpha
export const withAlpha = (color: string, opacity: number) => {
const _opacity = Math.round(Math.min(Math.max(opacity || 1, 0), 1) * 255);
diff --git a/yarn.lock b/yarn.lock
index 536fc36fa7..7b057ed53d 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -6029,7 +6029,7 @@ __metadata:
languageName: node
linkType: hard
-"@react-native/normalize-color@npm:*, @react-native/normalize-color@npm:^2.0.0, @react-native/normalize-color@npm:^2.1.0":
+"@react-native/normalize-color@npm:^2.0.0, @react-native/normalize-color@npm:^2.1.0":
version: 2.1.0
resolution: "@react-native/normalize-color@npm:2.1.0"
checksum: 8ccbd40b3c7629f1dc97b3e9aadd95fd3507fcf2e37535a6299a70436ab891c34cbdc4240b07380553d6e85dd909e23d5773b5be1da2906b026312e0b0768838
@@ -10201,17 +10201,6 @@ __metadata:
languageName: node
linkType: hard
-"deprecated-react-native-prop-types@npm:^2.3.0":
- version: 2.3.0
- resolution: "deprecated-react-native-prop-types@npm:2.3.0"
- dependencies:
- "@react-native/normalize-color": "*"
- invariant: "*"
- prop-types: "*"
- checksum: d14f4be1dfe780a7fa9197a31b4a9a2b409c8cf1bf677713fd92d06733dee1043578662d1a8858541cf06164ae91d295db6e595f29bf13e808d9fb37bc58c90b
- languageName: node
- linkType: hard
-
"deprecated-react-native-prop-types@npm:^4.0.0":
version: 4.2.3
resolution: "deprecated-react-native-prop-types@npm:4.2.3"
@@ -13426,7 +13415,7 @@ __metadata:
languageName: node
linkType: hard
-"invariant@npm:*, invariant@npm:2.2.4, invariant@npm:^2.2.1, invariant@npm:^2.2.4":
+"invariant@npm:2.2.4, invariant@npm:^2.2.1, invariant@npm:^2.2.4":
version: 2.2.4
resolution: "invariant@npm:2.2.4"
dependencies:
@@ -17252,7 +17241,7 @@ __metadata:
languageName: node
linkType: hard
-"prop-types@npm:*, prop-types@npm:^15.5.6, prop-types@npm:^15.5.8, prop-types@npm:^15.7.2, prop-types@npm:^15.8.0, prop-types@npm:^15.8.1":
+"prop-types@npm:^15.5.6, prop-types@npm:^15.5.8, prop-types@npm:^15.7.2, prop-types@npm:^15.8.0, prop-types@npm:^15.8.1":
version: 15.8.1
resolution: "prop-types@npm:15.8.1"
dependencies:
@@ -17826,16 +17815,6 @@ __metadata:
languageName: node
linkType: hard
-"react-native-popover-view@npm:^5.1.8":
- version: 5.1.8
- resolution: "react-native-popover-view@npm:5.1.8"
- dependencies:
- deprecated-react-native-prop-types: ^2.3.0
- prop-types: ^15.8.1
- checksum: d219dccbf89d9536ef4edf73a7576b6cb9d828cb8cc92fa851821d0e55e7b9bbff2a3907e88c2e3a0e267301e5c2c50980bb4507640fac1eba6d9d0429bca615
- languageName: node
- linkType: hard
-
"react-native-popup-menu@npm:^0.16.1":
version: 0.16.1
resolution: "react-native-popup-menu@npm:0.16.1"
@@ -20325,7 +20304,6 @@ __metadata:
react-native-paper: ^4.12.5
react-native-pell-rich-editor: ^1.8.8
react-native-pie-chart: ^3.0.1
- react-native-popover-view: ^5.1.8
react-native-popup-menu: ^0.16.1
react-native-qrcode-svg: ^6.2.0
react-native-reanimated: ^3.6.2