PluginProbe ʕ •ᴥ•ʔ
Everest Forms – Contact Form, Payment Form, Quiz, Survey & Custom Form Builder with AI / 3.5.0
Everest Forms – Contact Form, Payment Form, Quiz, Survey & Custom Form Builder with AI v3.5.0
3.5.2 3.5.1 3.5.0 3.4.8 3.4.7 3.4.6 1.1.0 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.5.1 1.1.6 1.1.7 1.1.8 1.1.9 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.9 1.5.0 1.5.1 1.5.10 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.6.1 1.6.7 1.7.0 1.7.0.1 1.7.0.2 1.7.0.3 1.7.1 1.7.2 1.7.2.1 1.7.2.2 1.7.3 1.7.4 1.7.5 1.7.5.1 1.7.5.2 1.7.6 1.7.7 1.7.7.1 1.7.7.2 1.7.8 1.7.9 1.8.0 1.8.0.1 1.8.1 1.8.2 1.8.2.1 1.8.2.2 1.8.2.3 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8 1.8.9 1.9.0 1.9.0.1 1.9.1 1.9.2 1.9.3 1.9.4 1.9.4.1 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.0.1 2.0.1 2.0.2 2.0.3 2.0.3.1 2.0.4 2.0.4.1 2.0.5 2.0.6 2.0.7 2.0.8 2.0.8.1 2.0.9 3.0.0 3.0.0.1 3.0.1 3.0.2 3.0.3 3.0.3.1 3.0.4 3.0.4.1 3.0.4.2 3.0.5 3.0.5.1 3.0.5.2 3.0.6 3.0.6.1 3.0.7.1 3.0.8 3.0.8.1 3.0.9 3.0.9.1 3.0.9.2 3.0.9.3 3.0.9.4 3.0.9.5 3.1.0 3.1.1 3.1.2 3.2.0 3.2.1 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.3.0 3.4.0 3.4.1 3.4.2 3.4.2.1 3.4.3 3.4.4 3.4.5 trunk 1.0 1.0.1 1.0.2 1.0.3
everest-forms / src / templates / components / Sidebar.tsx
everest-forms / src / templates / components Last commit date
CreateFormCTA.tsx 1 month ago CreateWithAI.tsx 1 month ago Main.tsx 1 month ago PluginStatus.tsx 1 month ago Sidebar.tsx 1 month ago TemplateList.tsx 1 month ago TemplatesSkeleton.tsx 4 months ago
Sidebar.tsx
126 lines
1 import React from "react";
2 import { Box, VStack, HStack, Text, Icon } from "@chakra-ui/react";
3 import { LuSparkles } from 'react-icons/lu';
4 import { __ } from '@wordpress/i18n';
5
6 interface SidebarProps {
7 categories: { name: string; count: number }[];
8 selectedCategory: string;
9 onCategorySelect: (category: string) => void;
10 onRequestTemplate?: () => void;
11 }
12
13 const Sidebar: React.FC<SidebarProps> = React.memo(({ categories, selectedCategory, onCategorySelect, onRequestTemplate }) => {
14 const favorites = categories.find(cat => cat.name === 'Favorites');
15
16 const orderedCategories = favorites && favorites.count > 0
17 ? [favorites, ...categories.filter(cat => cat.name !== 'Favorites')]
18 : categories;
19
20 return (
21 <Box display="flex" flexDirection="column">
22 {/* Categories label */}
23 <Text
24 fontSize="11px"
25 fontWeight="600"
26 color="#9a9a9a"
27 textTransform="uppercase"
28 letterSpacing="0.12em"
29 mb="2"
30 px="2"
31 pb="3"
32 margin="0 0 8px 0"
33 >
34 {__("Categories", "everest-forms")}
35 </Text>
36
37 {/* Category list */}
38 <VStack align="stretch" spacing="0.5">
39 {orderedCategories.map((category) => {
40 const isActive = selectedCategory === category.name;
41 return (
42 <HStack
43 key={category.name}
44 py="12px"
45 px="3"
46 bg={isActive ? "rgba(117,69,187,0.1)" : "transparent"}
47 _hover={{ bg: isActive ? "rgba(117,69,187,0.1)" : "#f8fafc" }}
48 borderRadius="8px"
49 cursor="pointer"
50 justify="space-between"
51 onClick={() => onCategorySelect(category.name)}
52 transition="background 0.15s"
53 >
54 <Text
55 color={isActive ? "#7545BB" : "#383838"}
56 fontSize="14px"
57 fontWeight={isActive ? "500" : "400"}
58 margin="0"
59 >
60 {category.name}
61 </Text>
62 <Text
63 fontSize="12px"
64 color={isActive ? "rgba(117,69,187,0.7)" : "#999999"}
65 margin="0"
66 >
67 {category.count}
68 </Text>
69 </HStack>
70 );
71 })}
72 </VStack>
73
74 {/* Can't find a template? CTA */}
75 <Box
76 mt="20px"
77 borderRadius="12px"
78 border="1px solid #e2e8f0"
79 bgGradient="linear(to-br, rgba(117,69,187,0.06), rgba(117,69,187,0.02))"
80 p="16px"
81 >
82 <Text
83 fontSize="14px"
84 fontWeight="600"
85 color="#0e0e0e"
86 margin="0 0 4px 0"
87 >
88 {__("Can't find a template?", "everest-forms")}
89 </Text>
90 <Text
91 fontSize="12px"
92 color="#6b6b6b"
93 lineHeight="1.5"
94 margin="0 0 12px 0"
95 >
96 {__("Request a custom template built for your needs.", "everest-forms")}
97 </Text>
98 <Box
99 as="button"
100 width="100%"
101 display="inline-flex"
102 alignItems="center"
103 justifyContent="center"
104 gap="6px"
105 height="36px"
106 borderRadius="8px"
107 bg="#7545BB"
108 color="white"
109 fontSize="13px"
110 fontWeight="500"
111 border="none"
112 cursor="pointer"
113 onClick={() => onRequestTemplate && onRequestTemplate()}
114 _hover={{ bg: "rgba(117,69,187,0.88)" }}
115 transition="background 0.2s"
116 >
117 <Icon as={LuSparkles} boxSize="3.5" />
118 {__("Request Template", "everest-forms")}
119 </Box>
120 </Box>
121 </Box>
122 );
123 });
124
125 export default Sidebar;
126