mirror of
https://github.com/luxfi/explore.git
synced 2026-09-24 00:28:18 +00:00
* add decoration for external library warning * add decoration for same name warning * formatted tooltip text * show source code even if contract is not verified * add support for remappings context in file import resolution * library warning decoration styles * external libraries popover * disable contract name warning for a while * add tab to contract page link * change api host for preview * add main file indicator * change button styles and update screenshots * change isNeedProxy for passing pw tests * rollback review env changes
46 lines
1.1 KiB
TypeScript
46 lines
1.1 KiB
TypeScript
import { Flex } from '@chakra-ui/react';
|
|
import React from 'react';
|
|
|
|
import CodeEditorTab from './CodeEditorTab';
|
|
import useThemeColors from './utils/useThemeColors';
|
|
|
|
interface Props {
|
|
tabs: Array<string>;
|
|
activeTab: string;
|
|
mainFile?: string;
|
|
onTabSelect: (tab: string) => void;
|
|
onTabClose: (tab: string) => void;
|
|
}
|
|
|
|
const CodeEditorTabs = ({ tabs, activeTab, mainFile, onTabSelect, onTabClose }: Props) => {
|
|
const themeColors = useThemeColors();
|
|
|
|
const tabsPathChunks = React.useMemo(() => {
|
|
return tabs.map((tab) => tab.split('/'));
|
|
}, [ tabs ]);
|
|
|
|
return (
|
|
<Flex
|
|
borderTopLeftRadius="md"
|
|
overflow="hidden"
|
|
bgColor={ themeColors['sideBar.background'] }
|
|
flexWrap="wrap"
|
|
>
|
|
{ tabs.map((tab) => (
|
|
<CodeEditorTab
|
|
key={ tab }
|
|
path={ tab }
|
|
isActive={ activeTab === tab }
|
|
isMainFile={ mainFile === tab }
|
|
onClick={ onTabSelect }
|
|
onClose={ onTabClose }
|
|
isCloseDisabled={ tabs.length === 1 }
|
|
tabsPathChunks={ tabsPathChunks }
|
|
/>
|
|
)) }
|
|
</Flex>
|
|
);
|
|
};
|
|
|
|
export default React.memo(CodeEditorTabs);
|