1- // Copyright 2025 , Command Line Inc.
1+ // Copyright 2026 , Command Line Inc.
22// SPDX-License-Identifier: Apache-2.0
33
44import Logo from "@/app/asset/logo.svg" ;
5+ import { OnboardingGradientBg } from "@/app/onboarding/onboarding-common" ;
56import { modalsModel } from "@/app/store/modalmodel" ;
6- import { Modal } from "./modal " ;
7-
7+ import { RpcApi } from "@/app/store/wshclientapi " ;
8+ import { TabRpcClient } from "@/app/store/wshrpcutil" ;
89import { isDev } from "@/util/isdev" ;
9- import { useState } from "react" ;
10+ import { fireAndForget } from "@/util/util" ;
11+ import { useEffect , useState } from "react" ;
1012import { getApi } from "../store/global" ;
13+ import { Modal } from "./modal" ;
1114
1215interface AboutModalVProps {
1316 versionString : string ;
@@ -19,13 +22,14 @@ const AboutModalV = ({ versionString, updaterChannel, onClose }: AboutModalVProp
1922 const currentDate = new Date ( ) ;
2023
2124 return (
22- < Modal className = "pt-[34px] pb-[34px]" onClose = { onClose } >
23- < div className = "flex flex-col gap-[26px] w-full" >
25+ < Modal className = "pt-[34px] pb-[34px] overflow-hidden w-[450px]" onClose = { onClose } >
26+ < OnboardingGradientBg />
27+ < div className = "flex flex-col gap-[26px] w-full relative z-10" >
2428 < div className = "flex flex-col items-center justify-center gap-4 self-stretch w-full text-center" >
2529 < Logo />
2630 < div className = "text-[25px]" > Wave Terminal</ div >
2731 < div className = "leading-5" >
28- Open-Source AI-Native Terminal
32+ Open-Source AI-Integrated Terminal
2933 < br />
3034 Built for Seamless Workflows
3135 </ div >
@@ -35,30 +39,38 @@ const AboutModalV = ({ versionString, updaterChannel, onClose }: AboutModalVProp
3539 < br />
3640 Update Channel: { updaterChannel }
3741 </ div >
38- < div className = "flex items-start gap-[10px] self-stretch w-full text-center " >
42+ < div className = "grid grid-cols-2 gap-[10px] self-stretch w-full" >
3943 < a
4044 href = "https://github.com/wavetermdev/waveterm?ref=about"
4145 target = "_blank"
4246 rel = "noopener"
43- className = "inline-flex items-center px-4 py-2 rounded border border-border hover:bg-hoverbg transition-colors duration-200"
47+ className = "inline-flex items-center justify-center px-4 py-2 rounded border border-border hover:bg-hoverbg transition-colors duration-200"
4448 >
45- < i className = "fa-brands fa-github mr-2" > </ i > Github
49+ < i className = "fa-brands fa-github mr-2" > </ i > GitHub
4650 </ a >
4751 < a
4852 href = "https://www.waveterm.dev/?ref=about"
4953 target = "_blank"
5054 rel = "noopener"
51- className = "inline-flex items-center px-4 py-2 rounded border border-border hover:bg-hoverbg transition-colors duration-200"
55+ className = "inline-flex items-center justify-center px-4 py-2 rounded border border-border hover:bg-hoverbg transition-colors duration-200"
5256 >
5357 < i className = "fa-sharp fa-light fa-globe mr-2" > </ i > Website
5458 </ a >
5559 < a
5660 href = "https://github.com/wavetermdev/waveterm/blob/main/ACKNOWLEDGEMENTS.md"
5761 target = "_blank"
5862 rel = "noopener"
59- className = "inline-flex items-center px-4 py-2 rounded border border-border hover:bg-hoverbg transition-colors duration-200"
63+ className = "inline-flex items-center justify-center px-4 py-2 rounded border border-border hover:bg-hoverbg transition-colors duration-200"
6064 >
61- < i className = "fa-sharp fa-light fa-heart mr-2" > </ i > Acknowledgements
65+ < i className = "fa-sharp fa-light fa-book mr-2" > </ i > Open Source
66+ </ a >
67+ < a
68+ href = "https://github.com/sponsors/wavetermdev"
69+ target = "_blank"
70+ rel = "noopener"
71+ className = "inline-flex items-center justify-center px-4 py-2 rounded border border-border hover:bg-hoverbg transition-colors duration-200"
72+ >
73+ < i className = "fa-sharp fa-light fa-heart mr-2" > </ i > Sponsor
6274 </ a >
6375 </ div >
6476 < div className = "items-center gap-4 self-stretch w-full text-center" >
@@ -76,6 +88,16 @@ const AboutModal = () => {
7688 const [ updaterChannel ] = useState ( ( ) => getApi ( ) . getUpdaterChannel ( ) ) ;
7789 const versionString = `${ details . version } (${ isDev ( ) ? "dev-" : "" } ${ details . buildTime } )` ;
7890
91+ useEffect ( ( ) => {
92+ fireAndForget ( async ( ) => {
93+ RpcApi . RecordTEventCommand (
94+ TabRpcClient ,
95+ { event : "action:other" , props : { "action:type" : "about" } } ,
96+ { noresponse : true }
97+ ) ;
98+ } ) ;
99+ } , [ ] ) ;
100+
79101 return (
80102 < AboutModalV
81103 versionString = { versionString }
0 commit comments