Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,19 +1,10 @@
import { LineChart, Wallet } from "lucide-react";
import { type FC, memo, useRef } from "react";
import { type FC, memo } from "react";
import { useTranslation } from "react-i18next";
import { useStrategyPerformance } from "@/api/strategy";
import { usePublishStrategy } from "@/api/system";
// import { useStrategyPerformance } from "@/api/strategy";
// import { usePublishStrategy } from "@/api/system";
import { ValueCellAgentPng } from "@/assets/png";
import { Send, Share } from "@/assets/svg";
import { Badge } from "@/components/ui/badge";
import { Button } from "@/components/ui/button";
import {
DropdownMenu,
DropdownMenuContent,
DropdownMenuItem,
DropdownMenuTrigger,
} from "@/components/ui/dropdown-menu";
import { Spinner } from "@/components/ui/spinner";
import {
Table,
TableBody,
Expand All @@ -24,20 +15,19 @@ import {
} from "@/components/ui/table";
import MultiLineChart from "@/components/valuecell/charts/model-multi-line";
import { PngIcon } from "@/components/valuecell/icon/png-icon";
import SvgIcon from "@/components/valuecell/icon/svg-icon";
import LoginModal from "@/components/valuecell/modal/login-modal";
import { useTauriInfo } from "@/hooks/use-tauri-info";
// import { useTauriInfo } from "@/hooks/use-tauri-info";
import {
formatChange,
getChangeType,
getCoinCapIcon,
numberFixed,
} from "@/lib/utils";
import { useStockColors } from "@/store/settings-store";
import { useIsLoggedIn, useSystemInfo } from "@/store/system-store";
// import { useIsLoggedIn, useSystemInfo } from "@/store/system-store";
import type { PortfolioSummary, Position, Strategy } from "@/types/strategy";
import type { SharePortfolioCardRef } from "./modals/share-portfolio-modal";
import SharePortfolioModal from "./modals/share-portfolio-modal";

// import type { SharePortfolioCardRef } from "./modals/share-portfolio-modal";
// import SharePortfolioModal from "./modals/share-portfolio-modal";

interface PortfolioPositionsGroupProps {
priceCurve: Array<Array<number | string>>;
Expand Down Expand Up @@ -104,50 +94,50 @@ const PortfolioPositionsGroup: FC<PortfolioPositionsGroupProps> = ({
summary,
priceCurve,
positions,
strategy,
// strategy,
}) => {
const { t } = useTranslation();
const sharePortfolioModalRef = useRef<SharePortfolioCardRef>(null);
// const sharePortfolioModalRef = useRef<SharePortfolioCardRef>(null);

const stockColors = useStockColors();
const changeType = getChangeType(summary?.total_pnl);
const { name, avatar } = useSystemInfo();
const isLogin = useIsLoggedIn();
const { isTauriApp } = useTauriInfo();
// const { name, avatar } = useSystemInfo();
// const isLogin = useIsLoggedIn();
// const { isTauriApp } = useTauriInfo();

const hasPositions = positions.length > 0;
const hasPriceCurve = priceCurve.length > 0;

const { mutate: publishStrategy, isPending: isPublishing } =
usePublishStrategy();
// const { mutate: publishStrategy, isPending: isPublishing } =
// usePublishStrategy();

const { refetch: refetchPerformance } = useStrategyPerformance(
strategy.strategy_id,
);
// const { refetch: refetchPerformance } = useStrategyPerformance(
// strategy.strategy_id,
// );

const handlePublishToRankBoard = async () => {
const { data } = await refetchPerformance();
if (!data) return;
const { exchange_id, ...rest } = data;
// const handlePublishToRankBoard = async () => {
// const { data } = await refetchPerformance();
// if (!data) return;
// const { exchange_id, ...rest } = data;

publishStrategy({
...rest,
exchange_id: exchange_id || "virtual",
name,
avatar,
});
};
// publishStrategy({
// ...rest,
// exchange_id: exchange_id || "virtual",
// name,
// avatar,
// });
// };

const handleSharePortfolio = async () => {
const { data } = await refetchPerformance();
if (!data) return;
// const handleSharePortfolio = async () => {
// const { data } = await refetchPerformance();
// if (!data) return;

sharePortfolioModalRef.current?.open({
...data,
total_pnl: summary?.total_pnl ?? 0,
created_at: strategy.created_at,
});
};
// sharePortfolioModalRef.current?.open({
// ...data,
// total_pnl: summary?.total_pnl ?? 0,
// created_at: strategy.created_at,
// });
// };

return (
<div className="scroll-container flex flex-1 flex-col gap-8 p-6">
Expand All @@ -157,6 +147,7 @@ const PortfolioPositionsGroup: FC<PortfolioPositionsGroupProps> = ({
<h3 className="font-semibold text-base text-foreground">
{t("strategy.portfolio.title")}
</h3>
{/* Publish/Share features - commented out (requires login)
{isTauriApp &&
(isLogin ? (
<DropdownMenu>
Expand Down Expand Up @@ -192,6 +183,7 @@ const PortfolioPositionsGroup: FC<PortfolioPositionsGroupProps> = ({
</Button>
</LoginModal>
))}
*/}
</div>

<div className="grid grid-cols-3 gap-4 text-nowrap">
Expand Down Expand Up @@ -311,7 +303,7 @@ const PortfolioPositionsGroup: FC<PortfolioPositionsGroupProps> = ({
)}
</div>

<SharePortfolioModal ref={sharePortfolioModalRef} />
{/* <SharePortfolioModal ref={sharePortfolioModalRef} /> */}
</div>
);
};
Expand Down
14 changes: 7 additions & 7 deletions frontend/src/app/setting/general.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { useTheme } from "next-themes";
import { useTranslation } from "react-i18next";
import { useSignOut } from "@/api/system";
// import { useSignOut } from "@/api/system";
import { Badge } from "@/components/ui/badge";
import { Button } from "@/components/ui/button";
import {
Expand All @@ -19,17 +19,15 @@ import {
SelectTrigger,
SelectValue,
} from "@/components/ui/select";
import LoginModal from "@/components/valuecell/modal/login-modal";
import { useTauriInfo } from "@/hooks/use-tauri-info";
import { useUpdateToast } from "@/hooks/use-update-toast";
import { withTrack } from "@/lib/tracker";
import type { LanguageCode, StockColorMode } from "@/store/settings-store";
import {
useLanguage,
useSettingsActions,
useStockColorMode,
} from "@/store/settings-store";
import { useIsLoggedIn, useSystemInfo } from "@/store/system-store";
// import { useIsLoggedIn, useSystemInfo } from "@/store/system-store";

export default function GeneralPage() {
const { t } = useTranslation();
Expand All @@ -39,10 +37,10 @@ export default function GeneralPage() {
const { setStockColorMode, setLanguage } = useSettingsActions();
const { checkAndUpdate } = useUpdateToast();
const { isTauriApp, appVersion } = useTauriInfo();
const { email, id } = useSystemInfo();
const isLoggedIn = useIsLoggedIn();
// const { email, id } = useSystemInfo();
// const isLoggedIn = useIsLoggedIn();

const { mutate: signOut } = useSignOut();
// const { mutate: signOut } = useSignOut();
return (
<div className="flex flex-1 flex-col gap-4 p-10">
<div className="flex flex-col gap-1.5">
Expand All @@ -53,6 +51,7 @@ export default function GeneralPage() {
</div>

<FieldGroup className="gap-6">
{/* Account section - commented out for now
{isTauriApp && (
<Field orientation="horizontal">
<FieldContent>
Expand All @@ -78,6 +77,7 @@ export default function GeneralPage() {
)}
</Field>
)}
*/}

<Field orientation="horizontal">
<FieldContent>
Expand Down
13 changes: 6 additions & 7 deletions frontend/src/components/valuecell/app/app-sidebar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ import {
Conversation,
Logo,
Market,
Ranking,
Setting,
StrategyAgent,
} from "@/assets/svg";
Expand Down Expand Up @@ -155,12 +154,12 @@ const AppSidebar: FC = () => {
label: t("nav.strategy"),
to: "/agent/StrategyAgent",
},
{
id: "ranking",
icon: Ranking,
label: t("nav.ranking"),
to: "/ranking",
},
// {
// id: "ranking",
// icon: Ranking,
// label: t("nav.ranking"),
// to: "/ranking",
// },
{
id: "market",
icon: Market,
Expand Down
2 changes: 1 addition & 1 deletion frontend/src/routes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ export default [

route("/market", "app/market/agents.tsx"),

route("/ranking", "app/rank/board.tsx"),
// route("/ranking", "app/rank/board.tsx"),

...prefix("/agent", [
route("/:agentName", "app/agent/chat.tsx"),
Expand Down