Web: Files: Fixed lifetime tooltip for FilesSelector

This commit is contained in:
Nikita Gopienko 2023-11-23 13:16:03 +03:00
parent 7ee7f5bf29
commit 0e61a9028a
7 changed files with 20 additions and 4 deletions

View File

@ -498,6 +498,8 @@ const FilesSelector = ({
isRestore isRestore
); );
const titleIconTooltip = t("Files:RoomFilesLifetime", { days: 12 }); // TODO: days
const SelectorBody = ( const SelectorBody = (
<Selector <Selector
withHeader={withHeader} withHeader={withHeader}
@ -563,6 +565,7 @@ const FilesSelector = ({
cancelButtonId={ cancelButtonId={
isMove || isCopy || isRestore ? "select-file-modal-cancel" : "" isMove || isCopy || isRestore ? "select-file-modal-cancel" : ""
} }
titleIconTooltip={titleIconTooltip}
/> />
); );

View File

@ -80,4 +80,5 @@ export type SelectorProps = {
acceptButtonId?: string; acceptButtonId?: string;
cancelButtonId?: string; cancelButtonId?: string;
isChecked?: boolean; isChecked?: boolean;
titleIconTooltip?: string;
}; };

View File

@ -84,6 +84,7 @@ const Selector = ({
acceptButtonId, acceptButtonId,
cancelButtonId, cancelButtonId,
isChecked, isChecked,
titleIconTooltip,
}: SelectorProps) => { }: SelectorProps) => {
const [footerVisible, setFooterVisible] = React.useState<boolean>(false); const [footerVisible, setFooterVisible] = React.useState<boolean>(false);
const [isSearch, setIsSearch] = React.useState<boolean>(false); const [isSearch, setIsSearch] = React.useState<boolean>(false);
@ -350,6 +351,7 @@ const Selector = ({
withFooterInput={withFooterInput} withFooterInput={withFooterInput}
withFooterCheckbox={withFooterCheckbox} withFooterCheckbox={withFooterCheckbox}
descriptionText={descriptionText} descriptionText={descriptionText}
titleIconTooltip={titleIconTooltip}
/> />
{(footerVisible || alwaysShowFooter) && ( {(footerVisible || alwaysShowFooter) && (

View File

@ -43,4 +43,5 @@ export type BodyProps = {
withFooterCheckbox?: boolean; withFooterCheckbox?: boolean;
descriptionText?: string; descriptionText?: string;
titleIconTooltip?: string;
}; };

View File

@ -66,6 +66,7 @@ const Body = ({
withFooterCheckbox, withFooterCheckbox,
descriptionText, descriptionText,
withHeader, withHeader,
titleIconTooltip,
}: BodyProps) => { }: BodyProps) => {
const [bodyHeight, setBodyHeight] = React.useState(0); const [bodyHeight, setBodyHeight] = React.useState(0);
@ -224,6 +225,7 @@ const Body = ({
isMultiSelect, isMultiSelect,
rowLoader, rowLoader,
isItemLoaded, isItemLoaded,
titleIconTooltip,
}} }}
itemSize={48} itemSize={48}
onItemsRendered={onItemsRendered} onItemsRendered={onItemsRendered}

View File

@ -18,6 +18,7 @@ export type Data = {
isMultiSelect: boolean; isMultiSelect: boolean;
isItemLoaded: (index: number) => boolean; isItemLoaded: (index: number) => boolean;
rowLoader: any; rowLoader: any;
titleIconTooltip?: string;
}; };
export type ItemProps = { export type ItemProps = {

View File

@ -31,8 +31,14 @@ const compareFunction = (prevProps: ItemProps, nextProps: ItemProps) => {
}; };
const Item = React.memo(({ index, style, data }: ItemProps) => { const Item = React.memo(({ index, style, data }: ItemProps) => {
const { items, onSelect, isMultiSelect, isItemLoaded, rowLoader }: Data = const {
data; items,
onSelect,
isMultiSelect,
isItemLoaded,
rowLoader,
titleIconTooltip,
}: Data = data;
const isLoaded = isItemLoaded(index); const isLoaded = isItemLoaded(index);
@ -96,7 +102,7 @@ const Item = React.memo(({ index, style, data }: ItemProps) => {
{label} {label}
</Text> </Text>
{true && ( {titleIconTooltip && (
<> <>
<ReactSVG <ReactSVG
data-tooltip-id="iconTooltip" data-tooltip-id="iconTooltip"
@ -108,7 +114,7 @@ const Item = React.memo(({ index, style, data }: ItemProps) => {
place="bottom" place="bottom"
getContent={() => ( getContent={() => (
<Text fontSize="12px" fontWeight={400} noSelect> <Text fontSize="12px" fontWeight={400} noSelect>
aaaaaaaaaa {titleIconTooltip}
</Text> </Text>
)} )}
maxWidth="300px" maxWidth="300px"