Ver código fonte

Clean up code structure

Connor Prussin 1 ano atrás
pai
commit
b9e2d99fe9

+ 1 - 1
apps/staking/src/app/robots.ts

@@ -1,6 +1,6 @@
 import type { MetadataRoute } from "next";
 
-import { IS_PRODUCTION_SERVER } from "../server-config";
+import { IS_PRODUCTION_SERVER } from "../config/server";
 
 const robots = (): MetadataRoute.Robots => ({
   rules: {

+ 1 - 1
apps/staking/src/components/AccountHistoryButton/index.tsx

@@ -7,7 +7,7 @@ import {
   StakeType,
   loadAccountHistory,
 } from "../../api";
-import { useApiContext } from "../../use-api-context";
+import { useApiContext } from "../../hooks/use-api-context";
 import { LoadingSpinner } from "../LoadingSpinner";
 import { ModalButton } from "../ModalButton";
 import { Tokens } from "../Tokens";

+ 0 - 0
apps/staking/src/components/Root/amplitude.tsx → apps/staking/src/components/Amplitude/index.tsx


+ 3 - 3
apps/staking/src/components/Dashboard/index.tsx

@@ -12,16 +12,16 @@ import { ChevronDownIcon } from "@heroicons/react/24/outline";
 import useSWR from "swr";
 
 import { DashboardLoaded } from "./loaded";
-import { WalletButton } from "./wallet-button";
 import { type StakeAccount, loadData } from "../../api";
-import { useApiContext } from "../../use-api-context";
+import { useApiContext } from "../../hooks/use-api-context";
 import {
   StateType,
   StakeAccountProvider,
   useStakeAccount,
-} from "../../use-stake-account";
+} from "../../hooks/use-stake-account";
 import { AccountHistoryButton } from "../AccountHistoryButton";
 import { LoadingSpinner } from "../LoadingSpinner";
+import { WalletButton } from "../WalletButton";
 
 const ONE_SECOND_IN_MS = 1000;
 const ONE_MINUTE_IN_MS = 60 * ONE_SECOND_IN_MS;

+ 3 - 3
apps/staking/src/components/Dashboard/loaded.tsx

@@ -1,8 +1,8 @@
 import clsx from "clsx";
 import { type ReactNode, useMemo, useCallback } from "react";
 
-import { SparkChart } from "./spark-chart";
 import {
+  type Context,
   deposit,
   withdraw,
   stakeGovernance,
@@ -14,10 +14,10 @@ import {
   claim,
   calculateApy,
 } from "../../api";
-import type { Context } from "../../use-api-context";
-import { StateType, useTransfer } from "../../use-transfer";
+import { StateType, useTransfer } from "../../hooks/use-transfer";
 import { Button } from "../Button";
 import { ModalButton } from "../ModalButton";
+import { SparkChart } from "../SparkChart";
 import { Tokens } from "../Tokens";
 import { TransferButton } from "../TransferButton";
 

+ 1 - 1
apps/staking/src/components/Home/index.tsx

@@ -4,7 +4,7 @@ import { useWallet } from "@solana/wallet-adapter-react";
 import { useWalletModal } from "@solana/wallet-adapter-react-ui";
 import { useCallback } from "react";
 
-import { useIsMounted } from "../../use-is-mounted";
+import { useIsMounted } from "../../hooks/use-is-mounted";
 import { Button } from "../Button";
 import { Dashboard } from "../Dashboard";
 import { LoadingSpinner } from "../LoadingSpinner";

+ 1 - 1
apps/staking/src/components/Root/report-accessibility.tsx → apps/staking/src/components/ReportAccessibility/index.tsx

@@ -4,7 +4,7 @@ import { useEffect } from "react";
 import * as React from "react";
 import * as ReactDOM from "react-dom";
 
-import { useLogger } from "../../logger";
+import { useLogger } from "../../hooks/use-logger";
 
 export const ReportAccessibility = () => {
   const logger = useLogger();

+ 5 - 5
apps/staking/src/components/Root/index.tsx

@@ -3,17 +3,17 @@ import clsx from "clsx";
 import { Red_Hat_Text, Red_Hat_Mono } from "next/font/google";
 import type { ReactNode } from "react";
 
-import { Amplitude } from "./amplitude";
-import { ReportAccessibility } from "./report-accessibility";
-import { WalletProvider } from "./wallet-provider";
-import { LoggerProvider } from "../../logger";
 import {
   IS_PRODUCTION_SERVER,
   GOOGLE_ANALYTICS_ID,
   AMPLITUDE_API_KEY,
   WALLETCONNECT_PROJECT_ID,
   MAINNET_RPC,
-} from "../../server-config";
+} from "../../config/server";
+import { LoggerProvider } from "../../hooks/use-logger";
+import { Amplitude } from "../Amplitude";
+import { ReportAccessibility } from "../ReportAccessibility";
+import { WalletProvider } from "../WalletProvider";
 
 const redHatText = Red_Hat_Text({
   subsets: ["latin"],

+ 0 - 0
apps/staking/src/components/Dashboard/spark-chart.tsx → apps/staking/src/components/SparkChart/index.tsx


+ 3 - 3
apps/staking/src/components/TransferButton/index.tsx

@@ -7,10 +7,10 @@ import {
   useState,
 } from "react";
 
-import { useLogger } from "../../logger";
+import type { Context } from "../../api";
+import { useLogger } from "../../hooks/use-logger";
+import { StateType, useTransfer } from "../../hooks/use-transfer";
 import { stringToTokens } from "../../tokens";
-import { type Context } from "../../use-api-context";
-import { StateType, useTransfer } from "../../use-transfer";
 import { Button } from "../Button";
 import { ModalButton } from "../ModalButton";
 

+ 14 - 0
apps/staking/src/components/WalletButton/index.tsx

@@ -0,0 +1,14 @@
+"use client";
+
+import { WalletMultiButton } from "@solana/wallet-adapter-react-ui";
+import type { ComponentProps } from "react";
+
+import { usePrimaryDomain } from "../../hooks/use-primary-domain";
+
+export const WalletButton = (
+  props: ComponentProps<typeof WalletMultiButton>,
+) => {
+  const primaryDomain = usePrimaryDomain();
+
+  return <WalletMultiButton {...props}>{primaryDomain}</WalletMultiButton>;
+};

+ 0 - 0
apps/staking/src/components/Root/wallet-provider.tsx → apps/staking/src/components/WalletProvider/index.tsx


+ 1 - 1
apps/staking/src/isomorphic-config.ts → apps/staking/src/config/isomorphic.ts

@@ -3,7 +3,7 @@
 /**
  * Indicates this is a production-optimized build.  Note this does NOT
  * necessarily indicate that we're running on a cloud machine or the live build
- * -- use `RUNNING_IN_CLOUD` or `IS_PRODUCTION_SERVER` out of `server-config.ts`
+ * -- use `RUNNING_IN_CLOUD` or `IS_PRODUCTION_SERVER` out of `config/server.ts`
  * for that (if you need that on the client you'll need to write a client
  * component that receives that value as a prop).
  *

+ 0 - 0
apps/staking/src/server-config.ts → apps/staking/src/config/server.ts


+ 1 - 3
apps/staking/src/use-api-context.ts → apps/staking/src/hooks/use-api-context.ts

@@ -1,10 +1,8 @@
 import { useWallet, useConnection } from "@solana/wallet-adapter-react";
 import { useMemo } from "react";
 
-import type { Context } from "./api";
 import { StateType, useStakeAccount } from "./use-stake-account";
-
-export type { Context } from "./api";
+import type { Context } from "../api";
 
 export const useApiContext = (): Context => {
   const wallet = useWallet();

+ 0 - 0
apps/staking/src/use-is-mounted.ts → apps/staking/src/hooks/use-is-mounted.ts


+ 1 - 1
apps/staking/src/logger.tsx → apps/staking/src/hooks/use-logger.tsx

@@ -3,7 +3,7 @@
 import pino, { type Logger } from "pino";
 import { type ComponentProps, createContext, useContext, useMemo } from "react";
 
-import { IS_PRODUCTION_BUILD } from "./isomorphic-config";
+import { IS_PRODUCTION_BUILD } from "../config/isomorphic";
 
 const LoggerContext = createContext<undefined | Logger<string>>(undefined);
 

+ 3 - 8
apps/staking/src/components/Dashboard/wallet-button.tsx → apps/staking/src/hooks/use-primary-domain.ts

@@ -1,13 +1,8 @@
-"use client";
-
 import { getPrimaryDomain } from "@bonfida/spl-name-service";
 import { useConnection, useWallet } from "@solana/wallet-adapter-react";
-import { WalletMultiButton } from "@solana/wallet-adapter-react-ui";
-import { type ComponentProps, useEffect, useState } from "react";
+import { useEffect, useState } from "react";
 
-export const WalletButton = (
-  props: ComponentProps<typeof WalletMultiButton>,
-) => {
+export const usePrimaryDomain = () => {
   const wallet = useWallet();
   const { connection } = useConnection();
   const [primaryDomain, setPrimaryDomain] = useState<string | undefined>(
@@ -26,5 +21,5 @@ export const WalletButton = (
     }
   }, [wallet.publicKey, connection]);
 
-  return <WalletMultiButton {...props}>{primaryDomain}</WalletMultiButton>;
+  return primaryDomain;
 };

+ 1 - 1
apps/staking/src/use-stake-account.tsx → apps/staking/src/hooks/use-stake-account.tsx

@@ -10,7 +10,7 @@ import {
   type ComponentProps,
 } from "react";
 
-import { type StakeAccount, getStakeAccounts } from "./api";
+import { type StakeAccount, getStakeAccounts } from "../api";
 
 export enum StateType {
   Initialized,

+ 4 - 2
apps/staking/src/use-transfer.ts → apps/staking/src/hooks/use-transfer.ts

@@ -1,9 +1,11 @@
 import { useState, useCallback } from "react";
 import { useSWRConfig } from "swr";
 
-import { type Context, useApiContext } from "./use-api-context";
+import { useApiContext } from "./use-api-context";
 
-export const useTransfer = (transfer: (context: Context) => Promise<void>) => {
+export const useTransfer = (
+  transfer: (context: ReturnType<typeof useApiContext>) => Promise<void>,
+) => {
   const context = useApiContext();
   const [state, setState] = useState<State>(State.Base());
   const { mutate } = useSWRConfig();