This commit is contained in:
Tomáš Dvořák
2025-10-16 17:10:13 +02:00
parent f5e7be92c7
commit 35d0954afd
84 changed files with 9571 additions and 4668 deletions
@@ -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>
);