Skip to content
Snippets Groups Projects
Commit 9c8076ca authored by Dennis Collaris's avatar Dennis Collaris
Browse files

feat: doubleclick to copy from node link popup

parent 8ee155ec
No related branches found
No related tags found
1 merge request!474feat: doubleclick to copy from node link popup
Pipeline #147188 failed
import React from 'react';
import { TooltipProvider } from '@/lib/components/tooltip';
import React, { useState } from 'react';
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/lib/components/tooltip';
import { ATTRIBUTE_MAX_CHARACTERS } from '@/config';
const formatNumber = (number: number) => {
if (String(number).length <= 4) return number;
return number.toLocaleString('de-DE');
};
......@@ -11,6 +12,8 @@ export type NLPopUpProps = {
};
export const NLPopUp: React.FC<NLPopUpProps> = ({ data }) => {
const [didCopy, setDidCopy] = useState<string | null>(null);
return (
<TooltipProvider delay={100}>
<div className={`px-2`}>
......@@ -26,7 +29,23 @@ export const NLPopUp: React.FC<NLPopUpProps> = ({ data }) => {
<span className={`font-semibold truncate min-w-[40%]`}>{k}</span>
<span className="ml-auto text-right truncate grow-1 flex items-center">
{v !== undefined && (typeof v !== 'object' || Array.isArray(v)) && v != '' ? (
<span className="ml-auto text-right truncate">{typeof v === 'number' ? formatNumber(v) : v.toString()}</span>
<Tooltip open={didCopy === k} placement="top">
<TooltipContent>Copied!</TooltipContent>
<TooltipTrigger>
<span
className="ml-auto text-right truncate"
onDoubleClick={e => {
const value = typeof v === 'number' ? formatNumber(v) : v.toString();
navigator.clipboard.writeText(value);
setDidCopy(k);
window.getSelection()?.empty();
setTimeout(() => setDidCopy(null), 1000);
}}
>
{typeof v === 'number' ? formatNumber(v) : v.toString()}
</span>
</TooltipTrigger>
</Tooltip>
) : (
<div
className={`ml-auto mt-auto h-4 w-12 border-[1px] solid border-gray`}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment