Skip to content
Snippets Groups Projects

feat(map): context menu

Merged Mateusz Bolewski requested to merge feat/context-menu into development
2 unresolved threads
Files
27
import { contextMenuSelector } from '@/redux/contextMenu/contextMenu.selector';
import { useAppSelector } from '@/redux/hooks/useAppSelector';
import React from 'react';
import { twMerge } from 'tailwind-merge';
import { searchedBioEntityElementUniProtIdSelector } from '@/redux/bioEntity/bioEntity.selectors';
import { FIRST_ARRAY_ELEMENT, SECOND_ARRAY_ELEMENT } from '@/constants/common';
export const ContextMenu = (): React.ReactNode => {
Please register or sign in to reply
const { isOpen, coordinates } = useAppSelector(contextMenuSelector);
const unitProtId = useAppSelector(searchedBioEntityElementUniProtIdSelector);
const isUnitProtIdAvailable = (): boolean => unitProtId !== undefined;
const getUnitProtId = (): string | undefined => {
return isUnitProtIdAvailable() ? unitProtId : 'no UnitProt ID available';
};
return (
<div
className={twMerge(
'absolute z-10 rounded-lg border border-[#DBD9D9] bg-white p-4',
isOpen ? '' : 'hidden',
)}
style={{
left: `${coordinates[FIRST_ARRAY_ELEMENT]}px`,
top: `${coordinates[SECOND_ARRAY_ELEMENT]}px`,
}}
>
<div
className={twMerge(
'cursor-pointer',
!isUnitProtIdAvailable() ? 'cursor-not-allowed text-greyscale-700' : '',
)}
>
Open MolArt ({getUnitProtId()})
</div>
</div>
);
};
Loading