Minor optimizations
This commit is contained in:
parent
aaf1e8be93
commit
0f04434b65
@ -1,29 +1,19 @@
|
||||
import { useEffect, useMemo } from '../lib/teact/teact';
|
||||
import { useEffect } from '../lib/teact/teact';
|
||||
import { getActions } from '../global';
|
||||
|
||||
import type { ApiMessage } from '../api/types';
|
||||
|
||||
import { throttle } from '../util/schedulers';
|
||||
|
||||
const useEnsureMessage = (
|
||||
export default function useEnsureMessage(
|
||||
chatId: string,
|
||||
messageId?: number,
|
||||
message?: ApiMessage,
|
||||
replyOriginForId?: number,
|
||||
) => {
|
||||
) {
|
||||
const { loadMessage } = getActions();
|
||||
const loadMessageThrottled = useMemo(() => {
|
||||
const throttled = throttle(loadMessage, 500, true);
|
||||
return () => {
|
||||
throttled({ chatId, messageId: messageId!, replyOriginForId: replyOriginForId! });
|
||||
};
|
||||
}, [loadMessage, chatId, messageId, replyOriginForId]);
|
||||
|
||||
useEffect(() => {
|
||||
if (messageId && !message) {
|
||||
loadMessageThrottled();
|
||||
loadMessage({ chatId, messageId: messageId!, replyOriginForId: replyOriginForId! });
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
export default useEnsureMessage;
|
||||
}, [chatId, message, messageId, replyOriginForId]);
|
||||
}
|
||||
|
||||
@ -1,20 +1,21 @@
|
||||
import type React from '../lib/teact/teact';
|
||||
|
||||
import { IS_TOUCH_ENV, MouseButton } from '../util/windowEnvironment';
|
||||
import useLastCallback from './useLastCallback';
|
||||
|
||||
type EventArg<E> = React.MouseEvent<E>;
|
||||
type EventHandler<E> = (e: EventArg<E>) => void;
|
||||
|
||||
export function useFastClick<T extends HTMLDivElement | HTMLButtonElement>(callback?: EventHandler<T>) {
|
||||
const wrapperHandler = callback ? (e: EventArg<T>) => {
|
||||
const handler = useLastCallback((e: EventArg<T>) => {
|
||||
if (e.type === 'mousedown' && e.button !== MouseButton.Main) {
|
||||
return;
|
||||
}
|
||||
|
||||
callback(e);
|
||||
} : undefined;
|
||||
callback!(e);
|
||||
});
|
||||
|
||||
return IS_TOUCH_ENV
|
||||
? { handleClick: wrapperHandler }
|
||||
: { handleMouseDown: wrapperHandler };
|
||||
? { handleClick: callback ? handler : undefined }
|
||||
: { handleMouseDown: callback ? handler : undefined };
|
||||
}
|
||||
|
||||
@ -313,7 +313,7 @@ document.addEventListener('dblclick', () => {
|
||||
Object
|
||||
.values(DEBUG_components)
|
||||
.map(({ avgRenderTime, ...state }) => {
|
||||
return { ...state, ...(avgRenderTime && { avgRenderTime: Number(avgRenderTime.toFixed(2)) }) };
|
||||
return { ...state, ...(avgRenderTime !== undefined && { avgRenderTime: Number(avgRenderTime.toFixed(2)) }) };
|
||||
}),
|
||||
'renders',
|
||||
'desc',
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user