From 683fde7be4975cdb0f9a43e5da174ca57b826a89 Mon Sep 17 00:00:00 2001 From: Dmitry Popov Date: Wed, 15 Oct 2025 11:59:14 +0200 Subject: [PATCH 1/6] fix(Signatures): Fixed EOL indication for un-splashed and signatures list --- .../UnsplashedSignature/UnsplashedSignature.tsx | 15 ++++++++------- .../SystemSignatures/renders/renderInfoColumn.tsx | 4 ++-- assets/js/hooks/Mapper/types/signatures.ts | 2 +- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/assets/js/hooks/Mapper/components/map/components/UnsplashedSignature/UnsplashedSignature.tsx b/assets/js/hooks/Mapper/components/map/components/UnsplashedSignature/UnsplashedSignature.tsx index 3be611d6..bf74fa6f 100644 --- a/assets/js/hooks/Mapper/components/map/components/UnsplashedSignature/UnsplashedSignature.tsx +++ b/assets/js/hooks/Mapper/components/map/components/UnsplashedSignature/UnsplashedSignature.tsx @@ -1,15 +1,16 @@ -import { WdTooltipWrapper } from '@/hooks/Mapper/components/ui-kit/WdTooltipWrapper'; import { InfoDrawer } from '@/hooks/Mapper/components/ui-kit'; +import { WdTooltipWrapper } from '@/hooks/Mapper/components/ui-kit/WdTooltipWrapper'; -import classes from './UnsplashedSignature.module.scss'; -import { SystemSignature } from '@/hooks/Mapper/types/signatures'; -import { useMapRootState } from '@/hooks/Mapper/mapRootProvider'; import { WORMHOLE_CLASS_STYLES, WORMHOLES_ADDITIONAL_INFO } from '@/hooks/Mapper/components/map/constants.ts'; -import { useMemo } from 'react'; -import clsx from 'clsx'; import { renderInfoColumn } from '@/hooks/Mapper/components/mapInterface/widgets/SystemSignatures/renders'; import { K162_TYPES_MAP } from '@/hooks/Mapper/constants.ts'; import { parseSignatureCustomInfo } from '@/hooks/Mapper/helpers/parseSignatureCustomInfo.ts'; +import { useMapRootState } from '@/hooks/Mapper/mapRootProvider'; +import { TimeStatus } from '@/hooks/Mapper/types'; +import { SystemSignature } from '@/hooks/Mapper/types/signatures'; +import clsx from 'clsx'; +import { useMemo } from 'react'; +import classes from './UnsplashedSignature.module.scss'; interface UnsplashedSignatureProps { signature: SystemSignature; @@ -35,7 +36,7 @@ export const UnsplashedSignature = ({ signature }: UnsplashedSignatureProps) => }, [customInfo]); const isEOL = useMemo(() => { - return customInfo?.isEOL; + return customInfo?.time_status === TimeStatus._1h; }, [customInfo]); const whClassStyle = useMemo(() => { diff --git a/assets/js/hooks/Mapper/components/mapInterface/widgets/SystemSignatures/renders/renderInfoColumn.tsx b/assets/js/hooks/Mapper/components/mapInterface/widgets/SystemSignatures/renders/renderInfoColumn.tsx index e384f27e..374abaef 100644 --- a/assets/js/hooks/Mapper/components/mapInterface/widgets/SystemSignatures/renders/renderInfoColumn.tsx +++ b/assets/js/hooks/Mapper/components/mapInterface/widgets/SystemSignatures/renders/renderInfoColumn.tsx @@ -1,5 +1,5 @@ import { SystemViewStandalone, TooltipPosition, WHClassView } from '@/hooks/Mapper/components/ui-kit'; -import { SignatureGroup, SystemSignature } from '@/hooks/Mapper/types'; +import { SignatureGroup, SystemSignature, TimeStatus } from '@/hooks/Mapper/types'; import { PrimeIcons } from 'primereact/api'; import { renderK162Type } from '@/hooks/Mapper/components/mapRootContent/components/SignatureSettings/components/SignatureK162TypeSelect'; @@ -20,7 +20,7 @@ export const renderInfoColumn = (row: SystemSignature) => {
{row.temporary_name && {row.temporary_name}} - {customInfo.isEOL && ( + {customInfo.time_status === TimeStatus._1h && (
diff --git a/assets/js/hooks/Mapper/types/signatures.ts b/assets/js/hooks/Mapper/types/signatures.ts index a2dce3dc..17b506ce 100644 --- a/assets/js/hooks/Mapper/types/signatures.ts +++ b/assets/js/hooks/Mapper/types/signatures.ts @@ -29,7 +29,7 @@ export type GroupType = { export type SignatureCustomInfo = { k162Type?: string; - isEOL?: boolean; + time_status?: number; isCrit?: boolean; }; From 9e17df5544584523c36c669ea859e05f214f59b8 Mon Sep 17 00:00:00 2001 From: CI Date: Wed, 15 Oct 2025 09:59:48 +0000 Subject: [PATCH 2/6] chore: release version v1.81.11 --- CHANGELOG.md | 9 +++++++++ mix.exs | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d8447c32..8d324b94 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,15 @@ +## [v1.81.11](https://github.com/wanderer-industries/wanderer/compare/v1.81.10...v1.81.11) (2025-10-15) + + + + +### Bug Fixes: + +* Signatures: Fixed EOL indication for un-splashed and signatures list + ## [v1.81.10](https://github.com/wanderer-industries/wanderer/compare/v1.81.9...v1.81.10) (2025-10-13) diff --git a/mix.exs b/mix.exs index 745f849a..d5ea1a4c 100644 --- a/mix.exs +++ b/mix.exs @@ -3,7 +3,7 @@ defmodule WandererApp.MixProject do @source_url "https://github.com/wanderer-industries/wanderer" - @version "1.81.10" + @version "1.81.11" def project do [ From a6fb680be8d2fe57623d5469bbefac4ad4636177 Mon Sep 17 00:00:00 2001 From: CI Date: Wed, 15 Oct 2025 09:59:48 +0000 Subject: [PATCH 3/6] chore: [skip ci] From 3575b16def2735ccbafc278eba1e93041496d67a Mon Sep 17 00:00:00 2001 From: Dmitry Popov Date: Wed, 15 Oct 2025 12:32:29 +0200 Subject: [PATCH 4/6] fix(Core): Fixed map events buffering on tab switch --- .../js/hooks/Mapper/hooks/useEventBuffer.ts | 17 +++-- assets/js/hooks/Mapper/useMapperHandlers.ts | 65 ++++++++++++++----- 2 files changed, 57 insertions(+), 25 deletions(-) diff --git a/assets/js/hooks/Mapper/hooks/useEventBuffer.ts b/assets/js/hooks/Mapper/hooks/useEventBuffer.ts index 00a28fa0..cbb3d10d 100644 --- a/assets/js/hooks/Mapper/hooks/useEventBuffer.ts +++ b/assets/js/hooks/Mapper/hooks/useEventBuffer.ts @@ -28,14 +28,17 @@ export const useEventBuffer = (handler: UseEventBufferHandler) => { eventTickRef.current = eventTick; // @ts-ignore - const handleEvent = useCallback(event => { - if (!eventTickRef.current) { - return; - } + const handleEvent = useCallback( + event => { + if (!eventTickRef.current) { + return; + } - eventsBufferRef.current.push(event); - eventTickRef.current(); - }, []); + eventsBufferRef.current.push(event); + eventTickRef.current(); + }, + [eventTickRef.current], + ); return { handleEvent }; }; diff --git a/assets/js/hooks/Mapper/useMapperHandlers.ts b/assets/js/hooks/Mapper/useMapperHandlers.ts index 282b21b8..86f12a8b 100644 --- a/assets/js/hooks/Mapper/useMapperHandlers.ts +++ b/assets/js/hooks/Mapper/useMapperHandlers.ts @@ -1,5 +1,5 @@ -import { useEventBuffer } from '@/hooks/Mapper/hooks'; import usePageVisibility from '@/hooks/Mapper/hooks/usePageVisibility.ts'; +import debounce from 'lodash.debounce'; import { MapHandlers } from '@/hooks/Mapper/types/mapHandlers.ts'; import { RefObject, useCallback, useEffect, useRef } from 'react'; @@ -16,23 +16,6 @@ export const useMapperHandlers = (handlerRefs: RefObject[], hooksRe const visibleRef = useRef(visible); visibleRef.current = visible; - // @ts-ignore - const handleBufferedEvent = useCallback(({ type, body }) => { - if (!visibleRef.current) { - return; - } - - handlerRefs.forEach(ref => { - if (!ref.current) { - return; - } - - ref.current?.command(type, body); - }); - }, []); - - const { handleEvent: handleMapEvent } = useEventBuffer(handleBufferedEvent); - // TODO - do not delete THIS code it needs for debug // const [record, setRecord] = useLocalStorageState('record', { // defaultValue: false, @@ -73,6 +56,52 @@ export const useMapperHandlers = (handlerRefs: RefObject[], hooksRe [hooksRef.current], ); + // @ts-ignore + const eventsBufferRef = useRef<{ type; body }[]>([]); + + const eventTick = useCallback( + debounce(() => { + if (eventsBufferRef.current.length === 0) { + return; + } + + const { type, body } = eventsBufferRef.current.shift()!; + handlerRefs.forEach(ref => { + if (!ref.current) { + return; + } + + ref.current?.command(type, body); + }); + + // TODO - do not delete THIS code it needs for debug + // console.log('JOipP', `Tick Buff`, eventsBufferRef.current.length); + + if (eventsBufferRef.current.length > 0) { + eventTick(); + } + }, 10), + [], + ); + const eventTickRef = useRef(eventTick); + eventTickRef.current = eventTick; + + // @ts-ignore + const handleMapEvent = useCallback(({ type, body }) => { + // TODO - do not delete THIS code it needs for debug + // const currentTime = +new Date(); + // const timeDiff = currentTime - prevEventTime; + // prevEventTime = currentTime; + // console.log('JOipP', `IN [${inIndex++}] [${timeDiff}] ${getFormattedTime()}`, { type, body }); + + if (!eventTickRef.current || !visibleRef.current) { + return; + } + + eventsBufferRef.current.push({ type, body }); + eventTickRef.current(); + }, []); + useEffect(() => { if (!visible && !wasHiddenOnce.current) { wasHiddenOnce.current = true; From eb7d33ea0774cb67274963790fb610a8bde2ef86 Mon Sep 17 00:00:00 2001 From: CI Date: Wed, 15 Oct 2025 10:33:07 +0000 Subject: [PATCH 5/6] chore: release version v1.81.12 --- CHANGELOG.md | 9 +++++++++ mix.exs | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8d324b94..fbad38eb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,15 @@ +## [v1.81.12](https://github.com/wanderer-industries/wanderer/compare/v1.81.11...v1.81.12) (2025-10-15) + + + + +### Bug Fixes: + +* Core: Fixed map events buffering on tab switch + ## [v1.81.11](https://github.com/wanderer-industries/wanderer/compare/v1.81.10...v1.81.11) (2025-10-15) diff --git a/mix.exs b/mix.exs index d5ea1a4c..7fd5e705 100644 --- a/mix.exs +++ b/mix.exs @@ -3,7 +3,7 @@ defmodule WandererApp.MixProject do @source_url "https://github.com/wanderer-industries/wanderer" - @version "1.81.11" + @version "1.81.12" def project do [ From 245647ae6aed13b2d2f0a755219fbbef5c5d0c01 Mon Sep 17 00:00:00 2001 From: CI Date: Wed, 15 Oct 2025 10:33:07 +0000 Subject: [PATCH 6/6] chore: [skip ci]