Levels
Our integrated progression that combines TDH with{" "}
diff --git a/components/6529Gradient/6529Gradient.tsx b/components/6529Gradient/6529Gradient.tsx
index 3169eca923..3124165437 100644
--- a/components/6529Gradient/6529Gradient.tsx
+++ b/components/6529Gradient/6529Gradient.tsx
@@ -54,24 +54,24 @@ export default function GradientsComponent() {
const rawSort = searchParams.get("sort")?.toLowerCase() as Sort | undefined;
const nextSort = rawSort === Sort.TDH ? Sort.TDH : Sort.ID;
- const rawSortDir = searchParams
- .get("sort_dir")
- ?.toUpperCase() as SortDirection | undefined;
+ const rawSortDir = searchParams.get("sort_dir")?.toUpperCase() as
+ | SortDirection
+ | undefined;
const nextSortDir =
- rawSortDir === SortDirection.DESC ? SortDirection.DESC : SortDirection.ASC;
+ rawSortDir === SortDirection.DESC
+ ? SortDirection.DESC
+ : SortDirection.ASC;
setSort((current) => (current === nextSort ? current : nextSort));
- setSortDir((current) =>
- current === nextSortDir ? current : nextSortDir
- );
+ setSortDir((current) => (current === nextSortDir ? current : nextSortDir));
}, [searchParams]);
useEffect(() => {
let isMounted = true;
const url = `${publicEnv.API_ENDPOINT}/api/nfts/gradients?page_size=101`;
- fetchAllPages(url)
- .then((raw: GradientNFT[]) => {
+ fetchAllPages(url)
+ .then((raw) => {
if (!isMounted) {
return;
}
@@ -194,9 +194,7 @@ export default function GradientsComponent() {
-
- 6529 Gradient
-
+ 6529 Gradient
diff --git a/components/6529Gradient/GradientPage.tsx b/components/6529Gradient/GradientPage.tsx
index 975926015e..aa72343840 100644
--- a/components/6529Gradient/GradientPage.tsx
+++ b/components/6529Gradient/GradientPage.tsx
@@ -4,19 +4,24 @@ import styles from "./6529Gradient.module.scss";
import Address from "@/components/address/Address";
import { AuthContext } from "@/components/auth/Auth";
+import { useSeizeConnectContext } from "@/components/auth/SeizeConnectContext";
import { useCookieConsent } from "@/components/cookies/CookieConsentContext";
import LatestActivityRow from "@/components/latest-activity/LatestActivityRow";
import { NftPageStats } from "@/components/nft-attributes/NftStats";
import NFTImage from "@/components/nft-image/NFTImage";
import NFTMarketplaceLinks from "@/components/nft-marketplace-links/NFTMarketplaceLinks";
import NftNavigation from "@/components/nft-navigation/NftNavigation";
+import TransferSingle from "@/components/nft-transfer/TransferSingle";
import ArtistProfileHandle from "@/components/the-memes/ArtistProfileHandle";
+import YouOwnNftBadge from "@/components/you-own-nft-badge/YouOwnNftBadge";
import { publicEnv } from "@/config/env";
import { GRADIENT_CONTRACT } from "@/constants";
import { useSetTitle } from "@/contexts/TitleContext";
import { DBResponse } from "@/entities/IDBResponse";
import { NFT } from "@/entities/INFT";
+import { CollectedCollectionType } from "@/entities/IProfile";
import { Transaction } from "@/entities/ITransaction";
+import { ContractType } from "@/enums";
import {
areEqualAddresses,
numberWithCommas,
@@ -26,7 +31,7 @@ import useCapacitor from "@/hooks/useCapacitor";
import { fetchUrl } from "@/services/6529api";
import { useContext, useEffect, useState } from "react";
import { Col, Container, Row, Table } from "react-bootstrap";
-import YouOwnNftBadge from "../you-own-nft-badge/YouOwnNftBadge";
+
interface NftWithOwner extends NFT {
owner: string;
owner_display: string;
@@ -35,6 +40,7 @@ interface NftWithOwner extends NFT {
export default function GradientPageComponent({ id }: { readonly id: string }) {
const capacitor = useCapacitor();
const { country } = useCookieConsent();
+ const { address: connectedAddress } = useSeizeConnectContext();
const { connectedProfile } = useContext(AuthContext);
const fullscreenElementId = "the-art-fullscreen-img";
@@ -42,6 +48,7 @@ export default function GradientPageComponent({ id }: { readonly id: string }) {
const [nft, setNft] = useState();
const [isOwner, setIsOwner] = useState(false);
+ const [isConnectedAddressOwner, setIsConnectedAddressOwner] = useState(false);
const [transactions, setTransactions] = useState([]);
const [allNfts, setAllNfts] = useState([]);
@@ -56,6 +63,10 @@ export default function GradientPageComponent({ id }: { readonly id: string }) {
);
}, [nft, connectedProfile]);
+ useEffect(() => {
+ setIsConnectedAddressOwner(areEqualAddresses(connectedAddress, nft?.owner));
+ }, [nft, connectedAddress]);
+
useEffect(() => {
async function fetchNfts(url: string, mynfts: NftWithOwner[]) {
return fetchUrl(url).then((response: DBResponse) => {
@@ -117,28 +128,44 @@ export default function GradientPageComponent({ id }: { readonly id: string }) {
)}
{nft && (
-
+
-
- Owner
+
+
+
+
+ Owner
+
+
+
+
+
+
+
+ {isOwner && }
+
+
+
-
-
-
-
-
+
-
- {isOwner && }
-
+
+ )}
diff --git a/components/distribution-plan-tool/common/CircleLoader.tsx b/components/distribution-plan-tool/common/CircleLoader.tsx
index 28a37689a8..adc20b58a7 100644
--- a/components/distribution-plan-tool/common/CircleLoader.tsx
+++ b/components/distribution-plan-tool/common/CircleLoader.tsx
@@ -26,17 +26,14 @@ export default function CircleLoader({
className={`${classes[size]} tw-flex-shrink-0 tw-inline tw-text-primary-400 tw-animate-spin`}
viewBox="0 0 100 101"
fill="none"
- xmlns="http://www.w3.org/2000/svg"
- >
+ xmlns="http://www.w3.org/2000/svg">
+ fill="currentColor">
+ fill="currentColor">
);
}
diff --git a/components/distribution/Distribution.tsx b/components/distribution/Distribution.tsx
index 46d66f2599..b760f0f8e3 100644
--- a/components/distribution/Distribution.tsx
+++ b/components/distribution/Distribution.tsx
@@ -90,10 +90,12 @@ export default function DistributionPage(props: Readonly) {
if (nftId) {
const distributionPhotosUrl = `${publicEnv.API_ENDPOINT}/api/distribution_photos/${props.contract}/${nftId}`;
- fetchAllPages(distributionPhotosUrl).then((distributionPhotos: any[]) => {
- setDistributionPhotos(distributionPhotos);
- fetchDistribution();
- });
+ fetchAllPages(distributionPhotosUrl).then(
+ (distributionPhotos) => {
+ setDistributionPhotos(distributionPhotos);
+ fetchDistribution();
+ }
+ );
}
}, [nftId]);
@@ -290,8 +292,7 @@ export default function DistributionPage(props: Readonly) {
- {props.header} Card #
- {nftId} Distribution
+ {props.header} Card #{nftId} Distribution
{printMintingLink()}
diff --git a/components/latest-activity/fetchInitialActivityData.ts b/components/latest-activity/fetchInitialActivityData.ts
index 2d0d0676c8..92b93d033b 100644
--- a/components/latest-activity/fetchInitialActivityData.ts
+++ b/components/latest-activity/fetchInitialActivityData.ts
@@ -33,9 +33,9 @@ export async function fetchInitialActivityData(
) as Promise,
// Gradients data
- fetchAllPages(
+ fetchAllPages(
`${publicEnv.API_ENDPOINT}/api/nfts/gradients?&page_size=101`
- ) as Promise,
+ ),
// NextGen collections
commonApiFetch<{
diff --git a/components/layout/WebLayout.tsx b/components/layout/WebLayout.tsx
index d62de08ad0..e9b2e8d230 100644
--- a/components/layout/WebLayout.tsx
+++ b/components/layout/WebLayout.tsx
@@ -1,12 +1,12 @@
"use client";
-import React, { type ReactNode, useMemo } from "react";
import Image from "next/image";
-import WebSidebar from "./sidebar/WebSidebar";
-import { useSidebarController } from "../../hooks/useSidebarController";
+import React, { type ReactNode, useMemo } from "react";
import { SIDEBAR_WIDTHS } from "../../constants/sidebar";
+import { useSidebarController } from "../../hooks/useSidebarController";
import { SidebarProvider, useSidebarState } from "../../hooks/useSidebarState";
import ClientOnly from "../client-only/ClientOnly";
+import WebSidebar from "./sidebar/WebSidebar";
const DESKTOP_MAX_WIDTH = 1324;
@@ -34,20 +34,19 @@ const WebLayoutContent = ({ children, isSmall = false }: WebLayoutProps) => {
"--collapsed-width": SIDEBAR_WIDTHS.COLLAPSED,
"--expanded-width": SIDEBAR_WIDTHS.EXPANDED,
"--layout-max": `${DESKTOP_MAX_WIDTH}px`,
- }) as React.CSSProperties,
+ } as React.CSSProperties),
[sidebarWidth]
);
return (
+ data-small={isSmall ? "true" : "false"}>
{
data-mobile={isMobile}
data-narrow={isNarrow}
data-offcanvas={isOffcanvasOpen}
- data-right-open={isRightSidebarOpen}
- >
+ data-right-open={isRightSidebarOpen}>
{children}
@@ -88,11 +86,12 @@ const WebLayout = ({ children, isSmall = false }: WebLayoutProps) => (
height={326}
className="tw-rounded-md tw-shadow-lg tw-max-w-[40vw] md:tw-max-w-[180px] tw-h-auto"
/>
-
Loading...
+
+ Loading...
+
diff --git a/components/mapping-tools/ConsolidationMappingTool.tsx b/components/mapping-tools/ConsolidationMappingTool.tsx
index c30674aca3..fb8b05b6ab 100644
--- a/components/mapping-tools/ConsolidationMappingTool.tsx
+++ b/components/mapping-tools/ConsolidationMappingTool.tsx
@@ -1,13 +1,13 @@
"use client";
import { publicEnv } from "@/config/env";
+import { Consolidation } from "@/entities/IDelegation";
+import { areEqualAddresses } from "@/helpers/Helpers";
+import { fetchAllPages } from "@/services/6529api";
import { faFileUpload } from "@fortawesome/free-solid-svg-icons";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { useEffect, useRef, useState } from "react";
import { Button, Col, Container, Form, Row } from "react-bootstrap";
-import { Consolidation } from "@/entities/IDelegation";
-import { areEqualAddresses } from "@/helpers/Helpers";
-import { fetchAllPages } from "@/services/6529api";
import styles from "./MappingTool.module.scss";
const csvParser = require("csv-parser");
@@ -100,7 +100,7 @@ export default function ConsolidationMappingTool() {
useEffect(() => {
async function fetchConsolidations(url: string) {
- fetchAllPages(url).then((consolidations: Consolidation[]) => {
+ fetchAllPages