/
githubmirror
/
client
Обзор
Документация
Войти
/
githubmirror
/
client
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
shared/fs/browser/rows/common.tsx
99 строк
3 KB
chrisnojima
refactor(styles): theme via hooks, no android remount (#29515)
08 авг 2026, 02:24
Не верифицирован
08 авг 2026, 02:24
a41d38e
Код
Авторство
О чём код?
import * as T from '@/constants/types' import type * as React from 'react' import * as Kb from '@/common-adapters' import {OpenInSystemFileManager, ItemIcon, PathItemAction, PathStatusIcon} from '@/fs/common' export type StillCommonProps = { path: T.FS.Path inDestinationPicker?: boolean onOpen?: () => void mixedMode?: boolean testID?: string } export const StillCommon = ( props: StillCommonProps & { body?: React.ReactNode // content and status are ignored if body is set. content?: React.ReactNode status?: React.ReactNode writingToJournal: boolean uploadErrored?: boolean } ) => { const rowStyles = useRowStyles() return ( <Kb.ListItem type="Small" testID={props.testID} statusIcon={<PathStatusIcon path={props.path} />} icon={ <ItemIcon loadOnMount={false} subscribe={false} path={props.path} size={32} style={Kb.Styles.collapseStyles([ rowStyles.pathItemIcon, props.writingToJournal && !props.uploadErrored && rowStyles.opacity30, ])} mixedMode={props.mixedMode} /> } firstItem={true /* we add divider in Rows */} onClick={props.onOpen} body={ props.body || ( <Kb.Box2 direction="vertical" fullWidth={true} flex={1} justifyContent="center" style={Kb.Styles.collapseStyles([ rowStyles.itemBox, props.writingToJournal && !props.uploadErrored && rowStyles.opacity30, ])} > <Kb.Box2 direction="horizontal" fullWidth={true}> {props.content} </Kb.Box2> {props.status || null} </Kb.Box2> ) } onlyShowActionOnHover="fade" action={ !props.inDestinationPicker && !props.writingToJournal && T.FS.getPathLevel(props.path) > 2 && ( <Kb.Box2 direction="horizontal"> <OpenInSystemFileManager path={props.path} /> <PathItemAction path={props.path} clickable={{type: 'icon'}} initView={T.FS.PathItemActionMenuView.Root} mode="row" /> </Kb.Box2> ) } /> ) } export const useRowStyles = Kb.Styles.createStyleHook( () => ({ itemBox: { minWidth: 0, width: 0, }, opacity30: {opacity: 0.3}, pathItemIcon: Kb.Styles.marginH(Kb.Styles.globalMargins.medium), rowText: Kb.Styles.platformStyles({ isMobile: {flexShrink: 1}, }), }) as const ) export const normalRowHeight = Kb.smallListItemHeight