1- import { PluginStatus } from "@/hooks/stores" ;
1+ import { PluginStatus , usePluginStore } from "@/hooks/stores" ;
22import Modal from "@components/Modal" ;
33import AutoHeight from "@components/AutoHeight" ;
44import Card , { GridCard } from "@components/Card" ;
@@ -33,6 +33,8 @@ function Dialog({ plugin, setOpen }: { plugin: PluginStatus | null, setOpen: (op
3333 const [ loading , setLoading ] = useState ( false ) ;
3434 const [ error , setError ] = useState < string | null > ( null ) ;
3535
36+ const { setIsPluginUploadModalOpen} = usePluginStore ( ) ;
37+
3638 useEffect ( ( ) => {
3739 setLoading ( false ) ;
3840 } , [ plugin ] )
@@ -73,6 +75,11 @@ function Dialog({ plugin, setOpen }: { plugin: PluginStatus | null, setOpen: (op
7375 } ) ;
7476 } , [ send , plugin , setOpen ] )
7577
78+ const uploadPlugin = useCallback ( ( ) => {
79+ setOpen ( false ) ;
80+ setIsPluginUploadModalOpen ( true ) ;
81+ } , [ setIsPluginUploadModalOpen , setOpen ] )
82+
7683 return (
7784 < AutoHeight >
7885 < div className = "mx-auto max-w-4xl px-4 transition-all duration-300 ease-in-out" >
@@ -118,6 +125,30 @@ function Dialog({ plugin, setOpen }: { plugin: PluginStatus | null, setOpen: (op
118125 </ div >
119126 </ div >
120127
128+ < div className = "grid grid-cols-[auto,1fr] gap-x-4 text-sm text-black dark:text-white" >
129+ < span className = "font-semibold" >
130+ Name
131+ </ span >
132+ < span > { plugin ?. name } </ span >
133+
134+ < span className = "font-semibold" >
135+ Active Version
136+ </ span >
137+ < span > { plugin ?. version } </ span >
138+
139+ < span className = "font-semibold" >
140+ Description
141+ </ span >
142+ < span > { plugin ?. description } </ span >
143+
144+ < span className = "font-semibold" >
145+ Homepage
146+ </ span >
147+ < a href = { plugin ?. homepage } target = "_blank" rel = "noopener noreferrer" className = "text-blue-600 hover:text-blue-800 dark:text-blue-500 dark:hover:text-blue-400" >
148+ { plugin ?. homepage }
149+ </ a >
150+ </ div >
151+
121152 < div className = "h-[1px] w-full bg-slate-800/10 dark:bg-slate-300/20" />
122153
123154 < div
@@ -129,15 +160,15 @@ function Dialog({ plugin, setOpen }: { plugin: PluginStatus | null, setOpen: (op
129160 { error && < p className = "text-red-500 dark:text-red-400" > { error } </ p > }
130161 { plugin ?. message && (
131162 < >
132- < p className = "text-sm text-gray-500 dark:text-gray-400" >
133- Plugin message:
134- </ p >
135- < Card className = { cx (
136- "text-gray-500 dark:text-gray-400 p-4 border" ,
137- plugin . status === "error" && "border-red-200 bg-red-50 text-red-800 dark:text-red-400" ,
138- ) } >
139- { plugin . message }
140- </ Card >
163+ < p className = "text-sm text-gray-500 dark:text-gray-400" >
164+ Plugin message:
165+ </ p >
166+ < Card className = { cx (
167+ "text-gray-500 dark:text-gray-400 p-4 border" ,
168+ plugin . status === "error" && "border-red-200 bg-red-50 text-red-800 dark:text-red-400" ,
169+ ) } >
170+ { plugin . message }
171+ </ Card >
141172 </ >
142173 ) }
143174 < p className = "text-sm text-gray-500 dark:text-gray-400 py-10" >
@@ -154,6 +185,13 @@ function Dialog({ plugin, setOpen }: { plugin: PluginStatus | null, setOpen: (op
154185 } }
155186 >
156187 < div className = "flex items-center w-full space-x-2" >
188+ < Button
189+ size = "MD"
190+ theme = "primary"
191+ text = "Upload New Version"
192+ disabled = { loading }
193+ onClick = { uploadPlugin }
194+ />
157195 < Button
158196 size = "MD"
159197 theme = "blank"
0 commit comments