in Composer/packages/client/src/pages/language-generation/table-view.tsx [378:477]
items: getTemplatesMoreButtons(item),
}}
styles={{ menuIcon: { color: NeutralColors.black, fontSize: FontSizes.size16 } }}
/>
</TooltipHost>
);
},
},
];
// show compairable column when current lang is not default lang
if (locale === defaultLanguage) {
tableColums = tableColums.filter(
({ key }) => ['responses-default-lang', 'responses-lang'].includes(key) === false
);
} else {
tableColums = tableColums.filter(({ key }) => ['responses'].includes(key) === false);
}
// when is not common, show beenUsed column
if (!activeDialog) {
tableColums = tableColums.filter(({ key }) => ['beenUsed'].includes(key) === false);
}
return tableColums;
}, [
languages,
locale,
defaultLanguage,
handleTemplateUpdate,
handleTemplateUpdateDefaultLocale,
getTemplatesMoreButtons,
activeDialog,
actualProjectId,
]);
const onRenderDetailsHeader = useCallback((props, defaultRender) => {
return (
<div data-testid="tableHeader">
<Sticky isScrollSynced stickyPosition={StickyPositionType.Header}>
{defaultRender({
...props,
onRenderColumnHeaderTooltip: (tooltipHostProps) => <TooltipHost {...tooltipHostProps} />,
})}
</Sticky>
</div>
);
}, []);
const onRenderDetailsFooter = useCallback(() => {
return (
<div data-testid="tableFooter">
<ActionButton
css={actionButton}
iconProps={{ iconName: 'CirclePlus' }}
onClick={() => {
onCreateNewTemplate();
setMessage(formatMessage('item added'));
TelemetryClient.track('NewTemplateAdded');
}}
>
{formatMessage('New template')}
</ActionButton>
</div>
);
}, [activeDialog, templates]);
const getKeyCallback = useCallback((item) => item.name, []);
const templatesToRender = useMemo(() => {
if (locale !== defaultLanguage) {
return templates.map((item) => {
const itemInDefaultLang = defaultLangFile?.templates?.find(({ name }) => name === item.name);
return {
...item,
[`body-${defaultLanguage}`]: itemInDefaultLang?.body || '',
};
});
}
return templates;
}, [templates, defaultLangFile, locale, defaultLanguage]);
return (
<div className={'table-view'} data-testid={'table-view'}>
<ScrollablePane scrollbarVisibility={ScrollbarVisibility.auto}>
<DetailsList
className="table-view-list"
columns={getTableColums()}
componentRef={listRef}
getKey={getKeyCallback}
//initialFocusedIndex={focusedIndex}
items={templatesToRender}
// getKey={item => item.name}
layoutMode={DetailsListLayoutMode.justified}
selectionMode={SelectionMode.none}
styles={{
root: {
overflowX: 'hidden',
// hack for https://github.com/OfficeDev/office-ui-fabric-react/issues/8783
selectors: {
'div[role="row"]:hover': {