@@ -2,16 +2,8 @@ import {
22 Flex ,
33 Link ,
44 Button ,
5- Modal ,
6- ModalOverlay ,
7- ModalContent ,
8- ModalHeader ,
9- ModalBody ,
10- ModalCloseButton ,
115 useDisclosure ,
126 Text ,
13- Image ,
14- Box ,
157 Alert ,
168 AlertIcon ,
179} from "@chakra-ui/react" ;
@@ -22,19 +14,18 @@ import DashboardCard from "~/components/dashboard/DashboardCard";
2214import DashboardCardValue from "~/components/dashboard/DashboardCardValue" ;
2315import Markdown from "~/components/shared/Markdown" ;
2416import TasksFaq from "~/components/tasks/TasksFaq" ;
17+ import ExplorersModal from "~/components/tasks/ExplorersModal" ;
2518import { apos } from "~/lib/htmlEntities" ;
2619
2720import { useAppContext } from "~/contexts/app" ;
2821import useActivityQuery from "~/hooks/useActivityQuery" ;
2922import useInstancesQuery from "~/hooks/useInstancesQuery" ;
30- import useIsMobile from "~/hooks/useIsMobile" ;
3123
3224export default function TasksTab ( ) {
3325 const { apiToken } = useAppContext ( ) ;
3426 const activityQuery = useActivityQuery ( ) ;
3527 const instancesQuery = useInstancesQuery ( ) ;
3628 const explorersModal = useDisclosure ( ) ;
37- const isMobile = useIsMobile ( ) ;
3829
3930 const isLoading = activityQuery . isPlaceholderData && Boolean ( apiToken ) ;
4031
@@ -176,65 +167,11 @@ export default function TasksTab() {
176167 ) ) }
177168 </ Flex >
178169 < TasksFaq />
179- < Modal
170+ < ExplorersModal
180171 isOpen = { explorersModal . isOpen }
181172 onClose = { explorersModal . onClose }
182- size = { isMobile ? "full" : "md" }
183- isCentered
184- autoFocus = { false }
185- >
186- < ModalOverlay />
187- < ModalContent width = "400px" p = { 6 } >
188- < ModalHeader fontWeight = "500" textStyle = "h3" mb = { 4 } pr = { 12 } >
189- Choose explorer
190- </ ModalHeader >
191- < ModalCloseButton top = { 6 } right = { 6 } />
192- < ModalBody mb = { 0 } >
193- < Flex flexDir = "column" gap = { 6 } >
194- < Text >
195- Choose Blockscout explorer that you want to interact with and
196- earn Merits
197- </ Text >
198- < Flex flexWrap = "wrap" gap = { 2 } >
199- { instancesQuery . data ?. items . map ( ( instance ) => (
200- < Link
201- key = { instance . chain_id }
202- href = { instance . domain }
203- isExternal
204- _hover = { { textDecoration : "none" } }
205- >
206- < Flex
207- gap = { 2 }
208- alignItems = "center"
209- p = { 2 }
210- bgColor = "blue.50"
211- borderRadius = "base"
212- >
213- < Image
214- src = { instance . details . icon_url }
215- alt = { instance . name }
216- boxSize = { 5 }
217- flexShrink = { 0 }
218- fallback = {
219- < Box
220- boxSize = { 5 }
221- borderRadius = "full"
222- bg = "gray.200"
223- flexShrink = { 0 }
224- />
225- }
226- />
227- < Text fontSize = "sm" fontWeight = "500" >
228- { instance . name }
229- </ Text >
230- </ Flex >
231- </ Link >
232- ) ) }
233- </ Flex >
234- </ Flex >
235- </ ModalBody >
236- </ ModalContent >
237- </ Modal >
173+ items = { instancesQuery . data ?. items }
174+ />
238175 </ >
239176 ) ;
240177}
0 commit comments