mirror of
https://github.com/wanderer-industries/wanderer
synced 2025-12-08 08:45:37 +00:00
* fix(Map): fix design of kills widget, fix design of signatures widget - refactor a lot of code, fixed problem with tooltip blinking * fix(Map): refactor Tracking dialog, refactor Activity tracker, refactor codebase and some styles * fix(Core): don't count character passage on manual add connection * refactor(Core): improved characters tracking API * fix(Core): fixed link signature to system on 'leads to' set * fix(Map): Refactor map settings and prepared it to easier using * fix(Map): Add support new command for following update * fix(Map): Add support new command for main update * refactor(Core): Reduce map init data by using cached system static data * refactor(Core): Reduce map init data by extract signatures loading to a separate event * fix(Core): adjusted IP rate limits * fix(Map): Update design of tracking characters. Added icons for following and main. Added ability to see that character on the station or structure --------- Co-authored-by: achichenkov <aleksei.chichenkov@telleqt.ai> Co-authored-by: Dmitry Popov <dmitriypopovsamara@gmail.com>
43 lines
1.6 KiB
TypeScript
43 lines
1.6 KiB
TypeScript
import { forwardRef, HTMLProps, ReactNode, useMemo } from 'react';
|
|
import clsx from 'clsx';
|
|
import { WdTooltip, WdTooltipHandlers, TooltipProps } from '@/hooks/Mapper/components/ui-kit';
|
|
import classes from './WdTooltipWrapper.module.scss';
|
|
import { sizeClass, TooltipSize } from '@/hooks/Mapper/components/ui-kit/WdTooltipWrapper/utils.ts';
|
|
|
|
export type WdTooltipWrapperProps = {
|
|
content?: (() => ReactNode) | ReactNode;
|
|
size?: TooltipSize;
|
|
interactive?: boolean;
|
|
tooltipClassName?: string;
|
|
} & Omit<HTMLProps<HTMLDivElement>, 'content' | 'size'> &
|
|
Omit<TooltipProps, 'content'>;
|
|
|
|
export const WdTooltipWrapper = forwardRef<WdTooltipHandlers, WdTooltipWrapperProps>(
|
|
(
|
|
{ className, children, content, offset, position, targetSelector, interactive, size, tooltipClassName, ...props },
|
|
forwardedRef,
|
|
) => {
|
|
const suffix = useMemo(() => Math.random().toString(36).slice(2, 7), []);
|
|
const autoClass = `wdTooltipAutoTrigger-${suffix}`;
|
|
const finalTargetSelector = targetSelector || `.${autoClass}`;
|
|
|
|
return (
|
|
<div className={clsx(classes.WdTooltipWrapperRoot, className)} {...props}>
|
|
{targetSelector ? <>{children}</> : <div className={autoClass}>{children}</div>}
|
|
|
|
<WdTooltip
|
|
ref={forwardedRef}
|
|
offset={offset}
|
|
position={position}
|
|
content={content}
|
|
interactive={interactive}
|
|
targetSelector={finalTargetSelector}
|
|
className={clsx(size && sizeClass(size), tooltipClassName)}
|
|
/>
|
|
</div>
|
|
);
|
|
},
|
|
);
|
|
|
|
WdTooltipWrapper.displayName = 'WdTooltipWrapper';
|