1
1
import { CATEGORIES } from "../components/SnippetForm" ;
2
2
import SnippetList from "../components/SnippetList" ;
3
3
4
- export const ViewSnippets = ( {
5
- snippets,
6
- languages,
7
- onDelete,
8
- isDarkMode,
9
- theme,
10
- selectedCategory,
11
- setSelectedCategory,
12
- selectedLanguage,
13
- setSelectedLanguage,
14
- filteredSnippets
4
+ export const ViewSnippets = ( {
5
+ snippets,
6
+ languages,
7
+ onDelete,
8
+ isDarkMode,
9
+ theme,
10
+ selectedCategory,
11
+ setSelectedCategory,
12
+ selectedLanguage,
13
+ setSelectedLanguage,
14
+ filteredSnippets,
15
+ currentThemeOptions,
16
+ setTheme
15
17
} ) => {
16
- return (
17
- < div >
18
- < h3 > Your Snippets</ h3 >
19
- { snippets . length > 0 ? (
20
- < >
21
- < label htmlFor = "categorySelect" > Select Category: </ label >
22
- < select
23
- onChange = { ( e ) => setSelectedCategory ( e . target . value ) }
24
- value = { selectedCategory }
25
- style = { {
26
- padding : "8px" ,
27
- borderRadius : "4px" ,
28
- backgroundColor : isDarkMode ? "#3b3b3b" : "#ffffff" ,
29
- border : "1px solid #ccc" ,
30
- color : isDarkMode ? "#ffffff" : "#333" ,
31
- width : "200px" ,
32
- fontSize : "16px" ,
33
- marginBottom : "20px"
34
- } } >
35
- < option value = "All" > All</ option >
36
- { CATEGORIES . map ( ( cat , index ) => (
37
- < option key = { index } value = { cat } > { cat } </ option >
38
- ) ) }
39
- </ select >
40
- < label htmlFor = "languageSelect" > Select Language: </ label >
41
- < select
42
- onChange = { ( e ) => setSelectedLanguage ( e . target . value ) }
43
- value = { selectedLanguage }
44
- style = { {
45
- padding : "8px" ,
46
- borderRadius : "4px" ,
47
- backgroundColor : isDarkMode ? "#3b3b3b" : "#ffffff" ,
48
- border : "1px solid #ccc" ,
49
- color : isDarkMode ? "#ffffff" : "#333" ,
50
- width : "200px" ,
51
- fontSize : "16px" ,
52
- marginBottom : "20px"
53
- } } >
54
- < option value = "All" > All</ option >
55
- { languages . map ( ( lang , index ) => (
56
- < option key = { index } value = { lang } > { lang } </ option >
57
- ) ) }
58
- </ select >
59
- { filteredSnippets . length > 0 ? (
60
- < div style = { { marginTop : "20px" } } >
61
- < SnippetList
62
- snippets = { filteredSnippets }
63
- onDelete = { onDelete }
64
- theme = { theme }
65
- isDarkMode = { isDarkMode }
66
- />
67
- </ div >
68
- ) : (
69
- < p > No snippets in this category yet. Add some more snippets to see them here!</ p >
70
- ) }
71
- </ >
72
- ) : (
73
- < p > No snippets yet. Add one!</ p >
74
- ) }
75
- </ div >
76
- ) ;
18
+ return (
19
+ < div >
20
+ { snippets . length > 0 ? (
21
+ < >
22
+ < div style = { { marginBottom : "20px" } } >
23
+ < label htmlFor = "themeSelect" > Select Theme: </ label >
24
+ < select
25
+ value = { Object . keys ( currentThemeOptions ) . find ( key => currentThemeOptions [ key ] === theme ) }
26
+ onChange = { ( e ) => setTheme ( currentThemeOptions [ e . target . value ] ) }
27
+ style = { {
28
+ padding : "8px" ,
29
+ borderRadius : "4px" ,
30
+ backgroundColor : isDarkMode ? "#3b3b3b" : "#ffffff" ,
31
+ border : "1px solid #ccc" ,
32
+ color : isDarkMode ? "#ffffff" : "#333" ,
33
+ width : "200px" ,
34
+ fontSize : "16px"
35
+ } }
36
+ >
37
+ { Object . keys ( currentThemeOptions ) . map ( ( themeName ) => (
38
+ < option key = { themeName } value = { themeName } >
39
+ { themeName }
40
+ </ option >
41
+ ) ) }
42
+ </ select >
43
+ </ div >
44
+ < label htmlFor = "categorySelect" > Select Category: </ label >
45
+ < select
46
+ onChange = { ( e ) => setSelectedCategory ( e . target . value ) }
47
+ value = { selectedCategory }
48
+ style = { {
49
+ padding : "8px" ,
50
+ borderRadius : "4px" ,
51
+ backgroundColor : isDarkMode ? "#3b3b3b" : "#ffffff" ,
52
+ border : "1px solid #ccc" ,
53
+ color : isDarkMode ? "#ffffff" : "#333" ,
54
+ width : "200px" ,
55
+ fontSize : "16px" ,
56
+ marginBottom : "20px"
57
+ } } >
58
+ < option value = "All" > All</ option >
59
+ { CATEGORIES . map ( ( cat , index ) => (
60
+ < option key = { index } value = { cat } > { cat } </ option >
61
+ ) ) }
62
+ </ select >
63
+ < label htmlFor = "languageSelect" > Select Language: </ label >
64
+ < select
65
+ onChange = { ( e ) => setSelectedLanguage ( e . target . value ) }
66
+ value = { selectedLanguage }
67
+ style = { {
68
+ padding : "8px" ,
69
+ borderRadius : "4px" ,
70
+ backgroundColor : isDarkMode ? "#3b3b3b" : "#ffffff" ,
71
+ border : "1px solid #ccc" ,
72
+ color : isDarkMode ? "#ffffff" : "#333" ,
73
+ width : "200px" ,
74
+ fontSize : "16px" ,
75
+ marginBottom : "20px"
76
+ } } >
77
+ < option value = "All" > All</ option >
78
+ { languages . map ( ( lang , index ) => (
79
+ < option key = { index } value = { lang } > { lang } </ option >
80
+ ) ) }
81
+ </ select >
82
+ { filteredSnippets . length > 0 ? (
83
+ < div style = { { marginTop : "20px" } } >
84
+ < SnippetList
85
+ snippets = { filteredSnippets }
86
+ onDelete = { onDelete }
87
+ theme = { theme }
88
+ isDarkMode = { isDarkMode }
89
+ />
90
+ </ div >
91
+ ) : (
92
+ < p > No snippets in this category yet. Add some more snippets to see them here!</ p >
93
+ ) }
94
+ </ >
95
+ ) : (
96
+ < p > No snippets yet. Add one!</ p >
97
+ ) }
98
+ </ div >
99
+ ) ;
77
100
} ;
0 commit comments