@@ -93,6 +93,7 @@ interface IEntry {
93
93
text : string ;
94
94
topics : string [ ] ;
95
95
detail : number ;
96
+ nsfw : boolean ;
96
97
}
97
98
98
99
const ENTRIES : IEntry [ ] = [
@@ -103,6 +104,7 @@ const ENTRIES: IEntry[] = [
103
104
text : "Lorem ipsum dolor sit amet consectetur adipisicing elit …" ,
104
105
topics : [ "substance-use" ] ,
105
106
detail : 10 ,
107
+ nsfw : false ,
106
108
} ,
107
109
{
108
110
day : 17 ,
@@ -111,6 +113,7 @@ const ENTRIES: IEntry[] = [
111
113
text : "Lorem ipsum dolor sit amet consectetur adipisicing elit …" ,
112
114
topics : [ "coming-out" ] ,
113
115
detail : 1 ,
116
+ nsfw : false ,
114
117
} ,
115
118
{
116
119
day : 20 ,
@@ -119,6 +122,7 @@ const ENTRIES: IEntry[] = [
119
122
text : "Lorem ipsum dolor sit amet consectetur adipisicing elit …" ,
120
123
topics : [ "hrt" ] ,
121
124
detail : 65 ,
125
+ nsfw : false ,
122
126
} ,
123
127
{
124
128
day : 20 ,
@@ -127,6 +131,7 @@ const ENTRIES: IEntry[] = [
127
131
text : "Dolor sit amet consectetur adipisicing elit lorem ipsum …" ,
128
132
topics : [ "ffs" , "hrt" ] ,
129
133
detail : 20 ,
134
+ nsfw : true ,
130
135
} ,
131
136
{
132
137
day : 21 ,
@@ -135,6 +140,7 @@ const ENTRIES: IEntry[] = [
135
140
text : "Dolor sit amet consectetur adipisicing elit lorem ipsum …" ,
136
141
topics : [ "ffs" , "domperidone" ] ,
137
142
detail : 30 ,
143
+ nsfw : false ,
138
144
} ,
139
145
{
140
146
day : 22 ,
@@ -143,6 +149,7 @@ const ENTRIES: IEntry[] = [
143
149
text : "Dolor sit amet consectetur adipisicing elit lorem ipsum …" ,
144
150
topics : [ "coming-out" ] ,
145
151
detail : 40 ,
152
+ nsfw : false ,
146
153
} ,
147
154
{
148
155
day : 23 ,
@@ -151,6 +158,7 @@ const ENTRIES: IEntry[] = [
151
158
text : "Dolor sit amet consectetur adipisicing elit lorem ipsum …" ,
152
159
topics : [ "substance-use" , "ibutamoren" ] ,
153
160
detail : 100 ,
161
+ nsfw : true ,
154
162
} ,
155
163
{
156
164
day : 30 ,
@@ -159,6 +167,7 @@ const ENTRIES: IEntry[] = [
159
167
text : "Dolor sit amet consectetur adipisicing elit lorem ipsum …" ,
160
168
topics : [ "substance-use" , "ibutamoren" ] ,
161
169
detail : 50 ,
170
+ nsfw : true ,
162
171
} ,
163
172
] ;
164
173
@@ -315,6 +324,13 @@ export default function Home() {
315
324
let pageStartDate = new Date ( ) ;
316
325
let pageEndDate = new Date ( ) ;
317
326
327
+ const filter = ( e : IEntry ) =>
328
+ activeTopics . filter ( ( v ) => e . topics . includes ( v ) ) . length > 0 &&
329
+ e . detail <= detail &&
330
+ nsfw
331
+ ? true
332
+ : ! e . nsfw ;
333
+
318
334
switch ( scale ) {
319
335
case "week" : {
320
336
maxPages = Math . round (
@@ -382,11 +398,7 @@ export default function Home() {
382
398
break ;
383
399
}
384
400
case "page" : {
385
- const filteredEntries = ENTRIES . filter (
386
- ( e ) =>
387
- activeTopics . filter ( ( v ) => e . topics . includes ( v ) ) . length > 0 &&
388
- e . detail <= detail
389
- ) ;
401
+ const filteredEntries = ENTRIES . filter ( filter ) ;
390
402
391
403
maxPages = Math . ceil ( filteredEntries . length / 4 ) ;
392
404
@@ -405,19 +417,11 @@ export default function Home() {
405
417
const entriesToShow =
406
418
scale === "page"
407
419
? ENTRIES . map ( ( v , id ) => ( { id, ...v } ) )
408
- . filter (
409
- ( e ) =>
410
- activeTopics . filter ( ( v ) => e . topics . includes ( v ) ) . length > 0 &&
411
- e . detail <= detail
412
- )
420
+ . filter ( filter )
413
421
. slice ( pageStartIndex , pageEndIndex )
414
422
: ENTRIES . map ( ( v , id ) => ( { id, ...v } ) )
415
423
. slice ( pageStartIndex , pageEndIndex )
416
- . filter (
417
- ( e ) =>
418
- activeTopics . filter ( ( v ) => e . topics . includes ( v ) ) . length > 0 &&
419
- e . detail <= detail
420
- ) ;
424
+ . filter ( filter ) ;
421
425
422
426
let wentBackwards = useRef ( false ) ;
423
427
useEffect ( ( ) => {
@@ -450,7 +454,7 @@ export default function Home() {
450
454
451
455
return 1 ;
452
456
} ) ;
453
- } , [ selectedEntryID , currentPagination , detail , activeTopics ] ) ;
457
+ } , [ selectedEntryID , currentPagination , detail , activeTopics , nsfw ] ) ;
454
458
455
459
return (
456
460
< Page
@@ -620,12 +624,12 @@ export default function Home() {
620
624
< ToolbarItem className = "pf-u-display-none pf-u-display-inline-flex-on-md" >
621
625
< ToggleGroup aria-label = "Filter controls" >
622
626
< Tooltip
623
- content = "Toggle the available filters"
627
+ content = "Toggle the available filters (coming soon) "
624
628
position = "bottom"
625
629
>
626
630
< ToggleGroupItem
627
631
icon = { < FilterIcon /> }
628
- aria-label = "Toggle the available filters"
632
+ aria-label = "Toggle the available filters (coming soon) "
629
633
isSelected = { filters }
630
634
onChange = { ( ) => setFilters ( ( v ) => ! v ) }
631
635
isDisabled
@@ -657,14 +661,15 @@ export default function Home() {
657
661
>
658
662
< ToggleGroup aria-label = "Filter controls" >
659
663
< Tooltip
660
- content = "Toggle the available filters"
664
+ content = "Toggle the available filters (coming soon) "
661
665
position = "bottom"
662
666
>
663
667
< ToggleGroupItem
664
668
icon = { < FilterIcon /> }
665
- aria-label = "Toggle the available filters"
669
+ aria-label = "Toggle the available filters (coming soon) "
666
670
isSelected = { filters }
667
671
onChange = { ( ) => setFilters ( ( v ) => ! v ) }
672
+ isDisabled
668
673
/>
669
674
</ Tooltip >
670
675
</ ToggleGroup >
0 commit comments