1
+ import { MdiMeditation } from "@follow/components/icons/Meditation.jsx"
1
2
import { ActionButton } from "@follow/components/ui/button/index.js"
2
3
import { DividerVertical } from "@follow/components/ui/divider/index.js"
3
4
import { RotatingRefreshIcon } from "@follow/components/ui/loading/index.jsx"
@@ -12,7 +13,13 @@ import * as React from "react"
12
13
import { useTranslation } from "react-i18next"
13
14
14
15
import { setGeneralSetting , useGeneralSettingKey } from "~/atoms/settings/general"
15
- import { setUISetting , useUISettingKey } from "~/atoms/settings/ui"
16
+ import {
17
+ setUISetting ,
18
+ useIsZenMode ,
19
+ useRealInWideMode ,
20
+ useSetZenMode ,
21
+ useUISettingKey ,
22
+ } from "~/atoms/settings/ui"
16
23
import { useWhoami } from "~/atoms/user"
17
24
import { ImpressionView } from "~/components/common/ImpressionTracker"
18
25
import { FEED_COLLECTION_LIST , ROUTE_ENTRY_PENDING , ROUTE_FEED_IN_LIST } from "~/constants"
@@ -234,9 +241,11 @@ const SwitchToMasonryButton = () => {
234
241
}
235
242
236
243
const WideModeButton = ( ) => {
237
- const isWideMode = useUISettingKey ( "wideMode" )
244
+ const isWideMode = useRealInWideMode ( )
245
+ const isZenMode = useIsZenMode ( )
238
246
const { t } = useTranslation ( )
239
247
248
+ const setIsZenMode = useSetZenMode ( )
240
249
return (
241
250
< ImpressionView
242
251
event = "Switch to Wide Mode"
@@ -247,23 +256,33 @@ const WideModeButton = () => {
247
256
< ActionButton
248
257
shortcut = { shortcuts . layout . toggleWideMode . key }
249
258
onClick = { ( ) => {
250
- setUISetting ( "wideMode" , ! isWideMode )
251
- // TODO: Remove this after useMeasure can get bounds in time
252
- window . dispatchEvent ( new Event ( "resize" ) )
259
+ if ( isZenMode ) {
260
+ setIsZenMode ( false )
261
+ } else {
262
+ setUISetting ( "wideMode" , ! isWideMode )
263
+ // TODO: Remove this after useMeasure can get bounds in time
264
+ window . dispatchEvent ( new Event ( "resize" ) )
265
+ }
253
266
window . analytics ?. capture ( "Switch to Wide Mode" , {
254
267
wideMode : ! isWideMode ? 1 : 0 ,
255
268
click : 1 ,
256
269
} )
257
270
} }
258
271
tooltip = {
259
- ! isWideMode
260
- ? t ( "entry_list_header.switch_to_widemode" )
261
- : t ( "entry_list_header.switch_to_normalmode" )
272
+ isZenMode
273
+ ? t ( "zen.exit" )
274
+ : ! isWideMode
275
+ ? t ( "entry_list_header.switch_to_widemode" )
276
+ : t ( "entry_list_header.switch_to_normalmode" )
262
277
}
263
278
>
264
- < i
265
- className = { cn ( isWideMode ? "i-mgc-align-justify-cute-re" : "i-mgc-align-left-cute-re" ) }
266
- />
279
+ { isZenMode ? (
280
+ < MdiMeditation />
281
+ ) : (
282
+ < i
283
+ className = { cn ( isWideMode ? "i-mgc-align-justify-cute-re" : "i-mgc-align-left-cute-re" ) }
284
+ />
285
+ ) }
267
286
</ ActionButton >
268
287
</ ImpressionView >
269
288
)
0 commit comments