mirror of
https://github.com/Dvorinka/MyClubServer.git
synced 2026-06-04 02:32:57 +00:00
dev day #62
This commit is contained in:
@@ -719,7 +719,7 @@ const NavigationAdminPage = () => {
|
||||
<Box flex="1">
|
||||
<HStack spacing={4}>
|
||||
<Text fontSize="sm">
|
||||
<strong>Načteno:</strong> {navItems.length} webových, {adminNavItems.length} admin, {socialLinks.length} sociálních
|
||||
<strong>Načteno:</strong> {navItems.length} webových, {adminNavItems.length} admin
|
||||
</Text>
|
||||
</HStack>
|
||||
</Box>
|
||||
@@ -731,8 +731,7 @@ const NavigationAdminPage = () => {
|
||||
<Text fontWeight="bold">Oddělená správa navigace</Text>
|
||||
<Text fontSize="sm" mt={1}>
|
||||
• <strong>Webová navigace:</strong> Menu na veřejném webu<br/>
|
||||
• <strong>Admin panel:</strong> Postranní menu v administraci<br/>
|
||||
• <strong>Sociální sítě:</strong> Odkazy na sociální média
|
||||
• <strong>Admin panel:</strong> Postranní menu v administraci
|
||||
</Text>
|
||||
</Box>
|
||||
</Alert>
|
||||
@@ -741,7 +740,6 @@ const NavigationAdminPage = () => {
|
||||
<TabList>
|
||||
<Tab>Webová navigace</Tab>
|
||||
<Tab>Admin panel</Tab>
|
||||
<Tab>Sociální sítě</Tab>
|
||||
</TabList>
|
||||
|
||||
<TabPanels>
|
||||
@@ -874,100 +872,6 @@ const NavigationAdminPage = () => {
|
||||
</VStack>
|
||||
</VStack>
|
||||
</TabPanel>
|
||||
|
||||
{/* Social Links Tab */}
|
||||
<TabPanel>
|
||||
<VStack spacing={4} align="stretch">
|
||||
<Button leftIcon={<AddIcon />} colorScheme="blue" onClick={() => openSocialModal()}>
|
||||
Přidat sociální síť
|
||||
</Button>
|
||||
|
||||
{socialLinks.length === 0 ? (
|
||||
<Alert status="warning">
|
||||
<AlertIcon />
|
||||
<Box>
|
||||
<Text fontWeight="bold">Žádné sociální sítě</Text>
|
||||
<Text fontSize="sm" mt={1}>
|
||||
Nebyly nalezeny žádné odkazy na sociální sítě. Klikněte na "Přidat sociální síť" pro vytvoření odkazu.
|
||||
</Text>
|
||||
</Box>
|
||||
</Alert>
|
||||
) : (
|
||||
<Box borderWidth="1px" borderRadius="lg" overflow="hidden">
|
||||
<Table variant="simple">
|
||||
<Thead>
|
||||
<Tr>
|
||||
<Th width="100px">Pořadí</Th>
|
||||
<Th>Ikona</Th>
|
||||
<Th>Platforma</Th>
|
||||
<Th>URL</Th>
|
||||
<Th>Viditelné</Th>
|
||||
<Th>Akce</Th>
|
||||
</Tr>
|
||||
</Thead>
|
||||
<Tbody>
|
||||
{socialLinks.map((link, index) => {
|
||||
const IconComponent = getSocialIcon(link.platform);
|
||||
return (
|
||||
<Tr key={link.id} bg={link.visible ? 'transparent' : 'gray.50'}>
|
||||
<Td>
|
||||
<HStack spacing={1}>
|
||||
<IconButton
|
||||
aria-label="Nahoru"
|
||||
icon={<ChevronUpIcon />}
|
||||
size="sm"
|
||||
isDisabled={index === 0}
|
||||
onClick={() => moveSocialLink(index, 'up')}
|
||||
/>
|
||||
<IconButton
|
||||
aria-label="Dolů"
|
||||
icon={<ChevronDownIcon />}
|
||||
size="sm"
|
||||
isDisabled={index === socialLinks.length - 1}
|
||||
onClick={() => moveSocialLink(index, 'down')}
|
||||
/>
|
||||
</HStack>
|
||||
</Td>
|
||||
<Td>
|
||||
<IconComponent size={24} />
|
||||
</Td>
|
||||
<Td fontWeight="bold">{link.platform}</Td>
|
||||
<Td>
|
||||
<Text fontSize="sm" color="gray.600" isTruncated maxW="300px">
|
||||
{link.url}
|
||||
</Text>
|
||||
</Td>
|
||||
<Td>
|
||||
<Badge colorScheme={link.visible ? 'green' : 'gray'}>
|
||||
{link.visible ? 'Ano' : 'Ne'}
|
||||
</Badge>
|
||||
</Td>
|
||||
<Td>
|
||||
<HStack spacing={2}>
|
||||
<IconButton
|
||||
aria-label="Upravit"
|
||||
icon={<EditIcon />}
|
||||
size="sm"
|
||||
onClick={() => openSocialModal(link)}
|
||||
/>
|
||||
<IconButton
|
||||
aria-label="Smazat"
|
||||
icon={<DeleteIcon />}
|
||||
size="sm"
|
||||
colorScheme="red"
|
||||
onClick={() => deleteSocial(link.id!)}
|
||||
/>
|
||||
</HStack>
|
||||
</Td>
|
||||
</Tr>
|
||||
);
|
||||
})}
|
||||
</Tbody>
|
||||
</Table>
|
||||
</Box>
|
||||
)}
|
||||
</VStack>
|
||||
</TabPanel>
|
||||
</TabPanels>
|
||||
</Tabs>
|
||||
</VStack>
|
||||
@@ -1184,61 +1088,6 @@ const NavigationAdminPage = () => {
|
||||
</ModalFooter>
|
||||
</ModalContent>
|
||||
</Modal>
|
||||
|
||||
{/* Social Link Modal */}
|
||||
<Modal isOpen={isSocialModalOpen} onClose={onSocialModalClose} size="xl">
|
||||
<ModalOverlay />
|
||||
<ModalContent>
|
||||
<ModalHeader>{editingSocial?.id ? 'Upravit odkaz' : 'Nový odkaz'}</ModalHeader>
|
||||
<ModalCloseButton />
|
||||
<ModalBody>
|
||||
<VStack spacing={4}>
|
||||
<FormControl isRequired>
|
||||
<FormLabel>Platforma</FormLabel>
|
||||
<Select
|
||||
value={editingSocial?.platform || 'facebook'}
|
||||
onChange={(e) =>
|
||||
setEditingSocial({ ...editingSocial!, platform: e.target.value })
|
||||
}
|
||||
>
|
||||
{SOCIAL_PLATFORMS.map((platform) => (
|
||||
<option key={platform.value} value={platform.value}>
|
||||
{platform.label}
|
||||
</option>
|
||||
))}
|
||||
</Select>
|
||||
</FormControl>
|
||||
|
||||
<FormControl isRequired>
|
||||
<FormLabel>URL</FormLabel>
|
||||
<Input
|
||||
value={editingSocial?.url || ''}
|
||||
onChange={(e) => setEditingSocial({ ...editingSocial!, url: e.target.value })}
|
||||
placeholder="https://www.facebook.com/..."
|
||||
/>
|
||||
</FormControl>
|
||||
|
||||
<FormControl display="flex" alignItems="center">
|
||||
<FormLabel mb="0">Viditelné</FormLabel>
|
||||
<Switch
|
||||
isChecked={editingSocial?.visible ?? true}
|
||||
onChange={(e) =>
|
||||
setEditingSocial({ ...editingSocial!, visible: e.target.checked })
|
||||
}
|
||||
/>
|
||||
</FormControl>
|
||||
</VStack>
|
||||
</ModalBody>
|
||||
<ModalFooter>
|
||||
<Button variant="ghost" mr={3} onClick={onSocialModalClose}>
|
||||
Zrušit
|
||||
</Button>
|
||||
<Button colorScheme="blue" onClick={saveSocialLink}>
|
||||
Uložit
|
||||
</Button>
|
||||
</ModalFooter>
|
||||
</ModalContent>
|
||||
</Modal>
|
||||
</Container>
|
||||
</AdminLayout>
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user