[Build]
This commit is contained in:
parent
9b8a87217c
commit
3f4901df28
2
dist/0.c2412143c16cd7b04f22.js
vendored
Normal file
2
dist/0.c2412143c16cd7b04f22.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
dist/0.c2412143c16cd7b04f22.js.map
vendored
Normal file
1
dist/0.c2412143c16cd7b04f22.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
2
dist/0.e64d9d27b947a1138797.js
vendored
2
dist/0.e64d9d27b947a1138797.js
vendored
File diff suppressed because one or more lines are too long
1
dist/0.e64d9d27b947a1138797.js.map
vendored
1
dist/0.e64d9d27b947a1138797.js.map
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
2
dist/4.58ce129136041aa9506a.js
vendored
Normal file
2
dist/4.58ce129136041aa9506a.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
dist/4.58ce129136041aa9506a.js.map
vendored
Normal file
1
dist/4.58ce129136041aa9506a.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
2
dist/4.ba9b830278b3554f027e.js
vendored
2
dist/4.ba9b830278b3554f027e.js
vendored
File diff suppressed because one or more lines are too long
1
dist/4.ba9b830278b3554f027e.js.map
vendored
1
dist/4.ba9b830278b3554f027e.js.map
vendored
File diff suppressed because one or more lines are too long
1
dist/5.3ab589fa3f713177f16b.js.map
vendored
1
dist/5.3ab589fa3f713177f16b.js.map
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
dist/5.40a5f6df45d6ba7e84fd.js.map
vendored
Normal file
1
dist/5.40a5f6df45d6ba7e84fd.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,2 +1,2 @@
|
||||
!function(e){var r={};function t(n){if(r[n])return r[n].exports;var o=r[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,t),o.l=!0,o.exports}t.m=e,t.c=r,t.d=function(e,r,n){t.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:n})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,r){if(1&r&&(e=t(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(t.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var o in e)t.d(n,o,function(r){return e[r]}.bind(null,o));return n},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},t.p="",t(t.s=0)}([function(e,r,t){"use strict";t.r(r);new Set(["newMessage","newScheduledMessage","deleteMessages","deleteScheduledMessages","deleteHistory"]),"undefined"!=typeof window&&window.innerHeight;self.onerror=e=>{console.error(e),o({type:"unhandledError",error:{message:e.error.message||"Uncaught exception in worker"}})},self.addEventListener("unhandledrejection",e=>{console.error(e),o({type:"unhandledError",error:{message:e.reason.message||"Uncaught rejection in worker"}})});const n=new Map;function o(e,r){r?postMessage(e,r):postMessage(e)}let s;self.importScripts("rlottie-wasm.js");const a=new Promise(e=>{Module.onRuntimeInitialized=()=>{s={init:Module.cwrap("lottie_init","",[]),destroy:Module.cwrap("lottie_destroy","",["number"]),resize:Module.cwrap("lottie_resize","",["number","number","number"]),buffer:Module.cwrap("lottie_buffer","number",["number"]),render:Module.cwrap("lottie_render","",["number","number"]),loadFromData:Module.cwrap("lottie_load_from_data","number",["number","number"])},e()}}),i=new Map;var c;c={init:async function(e,r,t,n,o,c){s||await a;const u=JSON.stringify(r),d=allocate(intArrayFromString(u),"i8",0),l=s.init(),f=s.loadFromData(l,d);s.resize(l,t,t),i.set(e,{imgSize:t,reduceFactor:o,handle:l}),c(Math.ceil(f/o))},renderFrames:async function(e,r,t,n){s||await a;const{imgSize:o,reduceFactor:c,handle:u}=i.get(e);for(let e=r;e<=t;e++){const r=e*c;s.render(u,r);const t=s.buffer(u),a=Module.HEAPU8.subarray(t,t+o*o*4);n(e,new Uint8ClampedArray(a).buffer)}},destroy:function(e){const r=i.get(e);s.destroy(r.handle),i.delete(e)}},onmessage=async e=>{const{data:r}=e;switch(r.type){case"callMethod":{const{messageId:e,name:t,args:s}=r;try{if(e){const r=(...r)=>{const t=r[r.length-1];o({type:"methodCallback",messageId:e,callbackArgs:r},t instanceof ArrayBuffer?[t]:void 0)};n.set(e,r),s.push(r)}const[r,a]=await c[t](...s)||[];e&&o({type:"methodResponse",messageId:e,response:r},a)}catch(r){e&&o({type:"methodResponse",messageId:e,error:{message:r.message}})}e&&n.delete(e);break}case"cancelProgress":{const e=n.get(r.messageId);e&&(e.isCanceled=!0);break}}}}]);
|
||||
//# sourceMappingURL=56216b5dd7490b245f95.worker.js.map
|
||||
//# sourceMappingURL=d21fb25520204faa2094.worker.js.map
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
2
dist/index.html
vendored
2
dist/index.html
vendored
@ -1 +1 @@
|
||||
<!doctype html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name="apple-mobile-web-app-capable" content="yes"><link rel="apple-touch-icon" sizes="180x180" href="./apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="./favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="./favicon-16x16.png"><link rel="manifest" href="./site.webmanifest"><link rel="mask-icon" href="./safari-pinned-tab.svg" color="#3a8bf5"><meta name="apple-mobile-web-app-title" content="Telegram T"><meta name="application-name" content="Telegram T"><meta name="msapplication-TileColor" content="#2b5797"><meta name="msapplication-config" content="./browserconfig.xml"><meta name="theme-color" content="#ffffff"><title>Telegram</title><link href="main.9615bb0fe696e5cdc29b.css" rel="stylesheet"></head><body><div id="root"></div><div id="portals"></div><script src="main.8e16668665a300b53952.js"></script></body></html>
|
||||
<!doctype html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name="apple-mobile-web-app-capable" content="yes"><link rel="apple-touch-icon" sizes="180x180" href="./apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="./favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="./favicon-16x16.png"><link rel="manifest" href="./site.webmanifest"><link rel="mask-icon" href="./safari-pinned-tab.svg" color="#3a8bf5"><meta name="apple-mobile-web-app-title" content="Telegram T"><meta name="application-name" content="Telegram T"><meta name="msapplication-TileColor" content="#2b5797"><meta name="msapplication-config" content="./browserconfig.xml"><meta name="theme-color" content="#ffffff"><title>Telegram</title><link href="main.9615bb0fe696e5cdc29b.css" rel="stylesheet"></head><body><div id="root"></div><div id="portals"></div><script src="main.33e6cd81e494b7bcb940.js"></script></body></html>
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
4
dist/report.html
vendored
4
dist/report.html
vendored
File diff suppressed because one or more lines are too long
@ -53,6 +53,7 @@ import fastSmoothScroll, { isAnimatingScroll } from '../../util/fastSmoothScroll
|
||||
import renderText from '../common/helpers/renderText';
|
||||
import useLang, { LangFn } from '../../hooks/useLang';
|
||||
import useWindowSize from '../../hooks/useWindowSize';
|
||||
import useBackgroundMode from '../../hooks/useBackgroundMode';
|
||||
|
||||
import Loading from '../ui/Loading';
|
||||
import MessageScroll from './MessageScroll';
|
||||
@ -225,6 +226,8 @@ const MessageList: FC<OwnProps & StateProps & DispatchProps> = ({
|
||||
}
|
||||
});
|
||||
|
||||
useBackgroundMode(freezeForReading, unfreezeForReading);
|
||||
|
||||
useOnChange(() => {
|
||||
memoFocusingIdRef.current = focusingId;
|
||||
|
||||
|
||||
@ -1,7 +1,5 @@
|
||||
import { MutableRefObject } from 'react';
|
||||
import React, {
|
||||
FC, useCallback, useEffect, useRef,
|
||||
} from '../../lib/teact/teact';
|
||||
import React, { FC, useCallback, useRef } from '../../lib/teact/teact';
|
||||
|
||||
import { MESSAGE_LIST_SENSITIVE_AREA } from '../../config';
|
||||
import resetScroll from '../../util/resetScroll';
|
||||
@ -23,10 +21,7 @@ type OwnProps = {
|
||||
};
|
||||
|
||||
const FAB_THRESHOLD = 50;
|
||||
const TOOLS_FREEZE_TIMEOUT = 100;
|
||||
|
||||
// Local flag is used because `freeze/unfreeze` methods are controlled by heavy animation
|
||||
let areToolsFrozen = false;
|
||||
const TOOLS_FREEZE_TIMEOUT = 1000;
|
||||
|
||||
const MessageScroll: FC<OwnProps> = ({
|
||||
containerRef,
|
||||
@ -49,10 +44,6 @@ const MessageScroll: FC<OwnProps> = ({
|
||||
const fabTriggerRef = useRef<HTMLDivElement>(null);
|
||||
|
||||
const toggleScrollTools = useCallback(() => {
|
||||
if (areToolsFrozen) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!messageIds || !messageIds.length) {
|
||||
onFabToggle(false);
|
||||
onNotchToggle(false);
|
||||
@ -118,35 +109,33 @@ const MessageScroll: FC<OwnProps> = ({
|
||||
|
||||
const {
|
||||
observe: observeIntersectionForNotch,
|
||||
freeze: freezeForNotch,
|
||||
unfreeze: unfreezeForNotch,
|
||||
} = useIntersectionObserver({
|
||||
rootRef: containerRef,
|
||||
}, toggleScrollTools);
|
||||
|
||||
useOnIntersect(fabTriggerRef, observeIntersectionForNotch);
|
||||
|
||||
// Do not load more and show FAB when focusing
|
||||
useOnChange(() => {
|
||||
if (focusingId) {
|
||||
freezeForLoadMore();
|
||||
freezeForFab();
|
||||
} else {
|
||||
unfreezeForFab();
|
||||
unfreezeForLoadMore();
|
||||
}
|
||||
}, [focusingId]);
|
||||
|
||||
// Workaround for FAB and notch flickering with tall incoming message
|
||||
useOnChange(() => {
|
||||
areToolsFrozen = true;
|
||||
freezeForFab();
|
||||
freezeForNotch();
|
||||
|
||||
setTimeout(() => {
|
||||
areToolsFrozen = false;
|
||||
unfreezeForNotch();
|
||||
unfreezeForFab();
|
||||
}, TOOLS_FREEZE_TIMEOUT);
|
||||
}, [messageIds]);
|
||||
|
||||
// Workaround for stuck FAB when many unread messages
|
||||
useEffect(toggleScrollTools, [firstUnreadId]);
|
||||
|
||||
return (
|
||||
<div className={className} teactFastList>
|
||||
<div ref={backwardsTriggerRef} key="backwards-trigger" className="backwards-trigger" />
|
||||
|
||||
@ -41,19 +41,23 @@ export function useIntersectionObserver({
|
||||
}, rootCallback?: RootCallback): Response {
|
||||
const controllerRef = useRef<IntersectionController>();
|
||||
const rootCallbackRef = useRef<RootCallback>();
|
||||
const isFrozenRef = useRef<boolean>();
|
||||
const freezeFlagsRef = useRef(0);
|
||||
const onUnfreezeRef = useRef<NoneToVoidFunction>();
|
||||
|
||||
rootCallbackRef.current = rootCallback;
|
||||
|
||||
const freeze = useCallback(() => {
|
||||
isFrozenRef.current = true;
|
||||
freezeFlagsRef.current++;
|
||||
}, []);
|
||||
|
||||
const unfreeze = useCallback(() => {
|
||||
isFrozenRef.current = false;
|
||||
if (!freezeFlagsRef.current) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (onUnfreezeRef.current) {
|
||||
freezeFlagsRef.current--;
|
||||
|
||||
if (!freezeFlagsRef.current && onUnfreezeRef.current) {
|
||||
onUnfreezeRef.current();
|
||||
onUnfreezeRef.current = undefined;
|
||||
}
|
||||
@ -104,7 +108,7 @@ export function useIntersectionObserver({
|
||||
entriesAccumulator.set(entry.target, entry);
|
||||
});
|
||||
|
||||
if (isFrozenRef.current) {
|
||||
if (freezeFlagsRef.current) {
|
||||
onUnfreezeRef.current = () => {
|
||||
observerCallback();
|
||||
};
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user