Migrate some components from FC (#6543)

This commit is contained in:
zubiden 2025-12-22 22:53:57 +01:00 committed by Alexander Zinchuk
parent 41c2a17fdc
commit a6b913c49e
143 changed files with 223 additions and 479 deletions

View File

@ -1,12 +1,10 @@
import type { FC } from '../../lib/teact/teact';
import { Bundles } from '../../util/moduleLoader'; import { Bundles } from '../../util/moduleLoader';
import useModuleLoader from '../../hooks/useModuleLoader'; import useModuleLoader from '../../hooks/useModuleLoader';
import Loading from '../ui/Loading'; import Loading from '../ui/Loading';
const AuthCodeAsync: FC = () => { const AuthCodeAsync = () => {
const AuthCode = useModuleLoader(Bundles.Auth, 'AuthCode'); const AuthCode = useModuleLoader(Bundles.Auth, 'AuthCode');
return AuthCode ? <AuthCode /> : <Loading />; return AuthCode ? <AuthCode /> : <Loading />;

View File

@ -1,12 +1,10 @@
import type { FC } from '../../lib/teact/teact';
import { Bundles } from '../../util/moduleLoader'; import { Bundles } from '../../util/moduleLoader';
import useModuleLoader from '../../hooks/useModuleLoader'; import useModuleLoader from '../../hooks/useModuleLoader';
import Loading from '../ui/Loading'; import Loading from '../ui/Loading';
const AuthPasswordAsync: FC = () => { const AuthPasswordAsync = () => {
const AuthPassword = useModuleLoader(Bundles.Auth, 'AuthPassword'); const AuthPassword = useModuleLoader(Bundles.Auth, 'AuthPassword');
return AuthPassword ? <AuthPassword /> : <Loading />; return AuthPassword ? <AuthPassword /> : <Loading />;

View File

@ -1,12 +1,10 @@
import type { FC } from '../../lib/teact/teact';
import { Bundles } from '../../util/moduleLoader'; import { Bundles } from '../../util/moduleLoader';
import useModuleLoader from '../../hooks/useModuleLoader'; import useModuleLoader from '../../hooks/useModuleLoader';
import Loading from '../ui/Loading'; import Loading from '../ui/Loading';
const AuthRegisterAsync: FC = () => { const AuthRegisterAsync = () => {
const AuthRegister = useModuleLoader(Bundles.Auth, 'AuthRegister'); const AuthRegister = useModuleLoader(Bundles.Auth, 'AuthRegister');
return AuthRegister ? <AuthRegister /> : <Loading />; return AuthRegister ? <AuthRegister /> : <Loading />;

View File

@ -1,5 +1,3 @@
import type { FC } from '../../lib/teact/teact';
import { Bundles } from '../../util/moduleLoader'; import { Bundles } from '../../util/moduleLoader';
import useModuleLoader from '../../hooks/useModuleLoader'; import useModuleLoader from '../../hooks/useModuleLoader';
@ -8,7 +6,7 @@ type OwnProps = {
isActive?: boolean; isActive?: boolean;
}; };
const ActiveCallHeaderAsync: FC<OwnProps> = (props) => { const ActiveCallHeaderAsync = (props: OwnProps) => {
const { isActive } = props; const { isActive } = props;
const ActiveCallHeader = useModuleLoader(Bundles.Calls, 'ActiveCallHeader', !isActive); const ActiveCallHeader = useModuleLoader(Bundles.Calls, 'ActiveCallHeader', !isActive);

View File

@ -1,4 +1,3 @@
import type { FC } from '../../lib/teact/teact';
import { memo, useEffect } from '../../lib/teact/teact'; import { memo, useEffect } from '../../lib/teact/teact';
import { getActions, withGlobal } from '../../global'; import { getActions, withGlobal } from '../../global';
@ -18,11 +17,11 @@ type StateProps = {
phoneCallUser?: ApiUser; phoneCallUser?: ApiUser;
}; };
const ActiveCallHeader: FC<StateProps> = ({ const ActiveCallHeader = ({
groupCall, groupCall,
phoneCallUser, phoneCallUser,
isCallPanelVisible, isCallPanelVisible,
}) => { }: StateProps) => {
const { toggleGroupCallPanel } = getActions(); const { toggleGroupCallPanel } = getActions();
const lang = useOldLang(); const lang = useOldLang();

View File

@ -1,12 +1,10 @@
import type { FC } from '../../../lib/teact/teact';
import type { OwnProps } from './GroupCall'; import type { OwnProps } from './GroupCall';
import { Bundles } from '../../../util/moduleLoader'; import { Bundles } from '../../../util/moduleLoader';
import useModuleLoader from '../../../hooks/useModuleLoader'; import useModuleLoader from '../../../hooks/useModuleLoader';
const GroupCallAsync: FC<OwnProps> = (props) => { const GroupCallAsync = (props: OwnProps) => {
const { groupCallId } = props; const { groupCallId } = props;
const GroupCall = useModuleLoader(Bundles.Calls, 'GroupCall', !groupCallId); const GroupCall = useModuleLoader(Bundles.Calls, 'GroupCall', !groupCallId);

View File

@ -1,5 +1,3 @@
import type { FC } from '../../../lib/teact/teact';
import { Bundles } from '../../../util/moduleLoader'; import { Bundles } from '../../../util/moduleLoader';
import useModuleLoader from '../../../hooks/useModuleLoader'; import useModuleLoader from '../../../hooks/useModuleLoader';
@ -8,7 +6,7 @@ type OwnProps = {
isActive?: boolean; isActive?: boolean;
}; };
const PhoneCallAsync: FC<OwnProps> = (props) => { const PhoneCallAsync = (props: OwnProps) => {
const { isActive } = props; const { isActive } = props;
const PhoneCall = useModuleLoader(Bundles.Calls, 'PhoneCall', !isActive); const PhoneCall = useModuleLoader(Bundles.Calls, 'PhoneCall', !isActive);

View File

@ -1,6 +1,5 @@
import '../../../global/actions/calls'; import '../../../global/actions/calls';
import type { FC } from '../../../lib/teact/teact';
import { import {
memo, useCallback, useEffect, useMemo, useRef, memo, useCallback, useEffect, useMemo, useRef,
} from '../../../lib/teact/teact'; } from '../../../lib/teact/teact';
@ -45,12 +44,12 @@ type StateProps = {
isCallPanelVisible?: boolean; isCallPanelVisible?: boolean;
}; };
const PhoneCall: FC<StateProps> = ({ const PhoneCall = ({
user, user,
isOutgoing, isOutgoing,
phoneCall, phoneCall,
isCallPanelVisible, isCallPanelVisible,
}) => { }: StateProps) => {
const lang = useOldLang(); const lang = useOldLang();
const { const {
hangUp, requestMasterAndAcceptCall, playGroupCallSound, toggleGroupCallPanel, connectToActivePhoneCall, hangUp, requestMasterAndAcceptCall, playGroupCallSound, toggleGroupCallPanel, connectToActivePhoneCall,

View File

@ -1,12 +1,10 @@
import type { FC } from '../../../lib/teact/teact';
import type { OwnProps } from './RatePhoneCallModal'; import type { OwnProps } from './RatePhoneCallModal';
import { Bundles } from '../../../util/moduleLoader'; import { Bundles } from '../../../util/moduleLoader';
import useModuleLoader from '../../../hooks/useModuleLoader'; import useModuleLoader from '../../../hooks/useModuleLoader';
const RatePhoneCallModalAsync: FC<OwnProps> = (props) => { const RatePhoneCallModalAsync = (props: OwnProps) => {
const { isOpen } = props; const { isOpen } = props;
const RatePhoneCallModal = useModuleLoader(Bundles.Calls, 'RatePhoneCallModal', !isOpen); const RatePhoneCallModal = useModuleLoader(Bundles.Calls, 'RatePhoneCallModal', !isOpen);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../lib/teact/teact';
import type { OwnProps } from './AboutMonetizationModal'; import type { OwnProps } from './AboutMonetizationModal';
import { Bundles } from '../../util/moduleLoader'; import { Bundles } from '../../util/moduleLoader';
import useModuleLoader from '../../hooks/useModuleLoader'; import useModuleLoader from '../../hooks/useModuleLoader';
const AboutMonetizationModalAsync: FC<OwnProps> = (props) => { const AboutMonetizationModalAsync = (props: OwnProps) => {
const { isOpen } = props; const { isOpen } = props;
const AboutMonetizationModal = useModuleLoader(Bundles.Extra, 'AboutMonetizationModal', !isOpen); const AboutMonetizationModal = useModuleLoader(Bundles.Extra, 'AboutMonetizationModal', !isOpen);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../lib/teact/teact';
import type { OwnProps } from './CalendarModal'; import type { OwnProps } from './CalendarModal';
import { Bundles } from '../../util/moduleLoader'; import { Bundles } from '../../util/moduleLoader';
import useModuleLoader from '../../hooks/useModuleLoader'; import useModuleLoader from '../../hooks/useModuleLoader';
const CalendarModalAsync: FC<OwnProps> = (props) => { const CalendarModalAsync = (props: OwnProps) => {
const { isOpen } = props; const { isOpen } = props;
const CalendarModal = useModuleLoader(Bundles.Extra, 'CalendarModal', !isOpen); const CalendarModal = useModuleLoader(Bundles.Extra, 'CalendarModal', !isOpen);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../lib/teact/teact';
import type { OwnProps } from './CountryPickerModal'; import type { OwnProps } from './CountryPickerModal';
import { Bundles } from '../../util/moduleLoader'; import { Bundles } from '../../util/moduleLoader';
import useModuleLoader from '../../hooks/useModuleLoader'; import useModuleLoader from '../../hooks/useModuleLoader';
const CountryPickerModalAsync: FC<OwnProps> = (props) => { const CountryPickerModalAsync = (props: OwnProps) => {
const { isOpen } = props; const { isOpen } = props;
const CountryPickerModal = useModuleLoader(Bundles.Extra, 'CountryPickerModal', !isOpen); const CountryPickerModal = useModuleLoader(Bundles.Extra, 'CountryPickerModal', !isOpen);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../lib/teact/teact';
import type { OwnProps } from './CustomEmojiSetsModal'; import type { OwnProps } from './CustomEmojiSetsModal';
import { Bundles } from '../../util/moduleLoader'; import { Bundles } from '../../util/moduleLoader';
import useModuleLoader from '../../hooks/useModuleLoader'; import useModuleLoader from '../../hooks/useModuleLoader';
const CustomEmojiSetsModalAsync: FC<OwnProps> = (props) => { const CustomEmojiSetsModalAsync = (props: OwnProps) => {
const { customEmojiSetIds } = props; const { customEmojiSetIds } = props;
const CustomEmojiSetsModal = useModuleLoader(Bundles.Extra, 'CustomEmojiSetsModal', !customEmojiSetIds); const CustomEmojiSetsModal = useModuleLoader(Bundles.Extra, 'CustomEmojiSetsModal', !customEmojiSetIds);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../lib/teact/teact';
import type { OwnProps } from './DeleteMessageModal'; import type { OwnProps } from './DeleteMessageModal';
import { Bundles } from '../../util/moduleLoader'; import { Bundles } from '../../util/moduleLoader';
import useModuleLoader from '../../hooks/useModuleLoader'; import useModuleLoader from '../../hooks/useModuleLoader';
const DeleteMessageModalAsync: FC<OwnProps> = (props) => { const DeleteMessageModalAsync = (props: OwnProps) => {
const { isOpen } = props; const { isOpen } = props;
const DeleteMessageModal = useModuleLoader(Bundles.Extra, 'DeleteMessageModal', !isOpen); const DeleteMessageModal = useModuleLoader(Bundles.Extra, 'DeleteMessageModal', !isOpen);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../lib/teact/teact';
import type { OwnProps } from './PinMessageModal'; import type { OwnProps } from './PinMessageModal';
import { Bundles } from '../../util/moduleLoader'; import { Bundles } from '../../util/moduleLoader';
import useModuleLoader from '../../hooks/useModuleLoader'; import useModuleLoader from '../../hooks/useModuleLoader';
const PinMessageModalAsync: FC<OwnProps> = (props) => { const PinMessageModalAsync = (props: OwnProps) => {
const { isOpen } = props; const { isOpen } = props;
const PinMessageModal = useModuleLoader(Bundles.Extra, 'PinMessageModal', !isOpen); const PinMessageModal = useModuleLoader(Bundles.Extra, 'PinMessageModal', !isOpen);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../lib/teact/teact';
import type { OwnProps } from './PrivacySettingsNoticeModal'; import type { OwnProps } from './PrivacySettingsNoticeModal';
import { Bundles } from '../../util/moduleLoader'; import { Bundles } from '../../util/moduleLoader';
import useModuleLoader from '../../hooks/useModuleLoader'; import useModuleLoader from '../../hooks/useModuleLoader';
const PrivacySettingsNoticeModalAsync: FC<OwnProps> = (props) => { const PrivacySettingsNoticeModalAsync = (props: OwnProps) => {
const { isOpen } = props; const { isOpen } = props;
const PrivacySettingsNoticeModal = useModuleLoader(Bundles.Extra, 'PrivacySettingsNoticeModal', !isOpen); const PrivacySettingsNoticeModal = useModuleLoader(Bundles.Extra, 'PrivacySettingsNoticeModal', !isOpen);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../lib/teact/teact';
import type { OwnProps } from './SeenByModal'; import type { OwnProps } from './SeenByModal';
import { Bundles } from '../../util/moduleLoader'; import { Bundles } from '../../util/moduleLoader';
import useModuleLoader from '../../hooks/useModuleLoader'; import useModuleLoader from '../../hooks/useModuleLoader';
const SeenByModalAsync: FC<OwnProps> = (props) => { const SeenByModalAsync = (props: OwnProps) => {
const { isOpen } = props; const { isOpen } = props;
const SeenByModal = useModuleLoader(Bundles.Extra, 'SeenByModal', !isOpen); const SeenByModal = useModuleLoader(Bundles.Extra, 'SeenByModal', !isOpen);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../lib/teact/teact';
import type { OwnProps } from './StickerSetModal'; import type { OwnProps } from './StickerSetModal';
import { Bundles } from '../../util/moduleLoader'; import { Bundles } from '../../util/moduleLoader';
import useModuleLoader from '../../hooks/useModuleLoader'; import useModuleLoader from '../../hooks/useModuleLoader';
const StickerSetModalAsync: FC<OwnProps> = (props) => { const StickerSetModalAsync = (props: OwnProps) => {
const { isOpen } = props; const { isOpen } = props;
const StickerSetModal = useModuleLoader(Bundles.Extra, 'StickerSetModal', !isOpen); const StickerSetModal = useModuleLoader(Bundles.Extra, 'StickerSetModal', !isOpen);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../lib/teact/teact';
import type { OwnProps } from './UnpinAllMessagesModal'; import type { OwnProps } from './UnpinAllMessagesModal';
import { Bundles } from '../../util/moduleLoader'; import { Bundles } from '../../util/moduleLoader';
import useModuleLoader from '../../hooks/useModuleLoader'; import useModuleLoader from '../../hooks/useModuleLoader';
const UnpinAllMessagesModalAsync: FC<OwnProps> = (props) => { const UnpinAllMessagesModalAsync = (props: OwnProps) => {
const { isOpen } = props; const { isOpen } = props;
const UnpinAllMessagesModal = useModuleLoader(Bundles.Extra, 'UnpinAllMessagesModal', !isOpen); const UnpinAllMessagesModal = useModuleLoader(Bundles.Extra, 'UnpinAllMessagesModal', !isOpen);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../lib/teact/teact';
import type { OwnProps } from './VerificationMonetizationModal'; import type { OwnProps } from './VerificationMonetizationModal';
import { Bundles } from '../../util/moduleLoader'; import { Bundles } from '../../util/moduleLoader';
import useModuleLoader from '../../hooks/useModuleLoader'; import useModuleLoader from '../../hooks/useModuleLoader';
const VerificationMonetizationModalAsync: FC<OwnProps> = (props) => { const VerificationMonetizationModalAsync = (props: OwnProps) => {
const { modal } = props; const { modal } = props;
const VerificationMonetizationModal = useModuleLoader(Bundles.Extra, 'VerificationMonetizationModal', !modal); const VerificationMonetizationModal = useModuleLoader(Bundles.Extra, 'VerificationMonetizationModal', !modal);

View File

@ -1,5 +1,3 @@
import type { FC } from '../../lib/teact/teact';
import type { OwnProps } from './ArchivedChats'; import type { OwnProps } from './ArchivedChats';
import { Bundles } from '../../util/moduleLoader'; import { Bundles } from '../../util/moduleLoader';
@ -8,7 +6,7 @@ import useModuleLoader from '../../hooks/useModuleLoader';
import Loading from '../ui/Loading'; import Loading from '../ui/Loading';
const ArchivedChatsAsync: FC<OwnProps> = (props) => { const ArchivedChatsAsync = (props: OwnProps) => {
const ArchivedChats = useModuleLoader(Bundles.Extra, 'ArchivedChats'); const ArchivedChats = useModuleLoader(Bundles.Extra, 'ArchivedChats');
return ArchivedChats ? <ArchivedChats {...props} /> : <Loading />; return ArchivedChats ? <ArchivedChats {...props} /> : <Loading />;

View File

@ -1,12 +1,10 @@
import type { FC } from '../../lib/teact/teact';
import type { OwnProps } from './ChatFolderModal'; import type { OwnProps } from './ChatFolderModal';
import { Bundles } from '../../util/moduleLoader'; import { Bundles } from '../../util/moduleLoader';
import useModuleLoader from '../../hooks/useModuleLoader'; import useModuleLoader from '../../hooks/useModuleLoader';
const ChatFolderModalAsync: FC<OwnProps> = (props) => { const ChatFolderModalAsync = (props: OwnProps) => {
const { isOpen } = props; const { isOpen } = props;
const ChatFolderModal = useModuleLoader(Bundles.Extra, 'ChatFolderModal', !isOpen); const ChatFolderModal = useModuleLoader(Bundles.Extra, 'ChatFolderModal', !isOpen);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../lib/teact/teact';
import type { OwnProps } from './MuteChatModal'; import type { OwnProps } from './MuteChatModal';
import { Bundles } from '../../util/moduleLoader'; import { Bundles } from '../../util/moduleLoader';
import useModuleLoader from '../../hooks/useModuleLoader'; import useModuleLoader from '../../hooks/useModuleLoader';
const MuteChatModalAsync: FC<OwnProps> = (props) => { const MuteChatModalAsync = (props: OwnProps) => {
const { isOpen } = props; const { isOpen } = props;
const MuteChatModal = useModuleLoader(Bundles.Extra, 'MuteChatModal', !isOpen); const MuteChatModal = useModuleLoader(Bundles.Extra, 'MuteChatModal', !isOpen);

View File

@ -1,5 +1,3 @@
import type { FC } from '../../../lib/teact/teact';
import type { OwnProps } from './ContactList'; import type { OwnProps } from './ContactList';
import { Bundles } from '../../../util/moduleLoader'; import { Bundles } from '../../../util/moduleLoader';
@ -8,7 +6,7 @@ import useModuleLoader from '../../../hooks/useModuleLoader';
import Loading from '../../ui/Loading'; import Loading from '../../ui/Loading';
const ContactListAsync: FC<OwnProps> = (props) => { const ContactListAsync = (props: OwnProps) => {
const ContactList = useModuleLoader(Bundles.Extra, 'ContactList'); const ContactList = useModuleLoader(Bundles.Extra, 'ContactList');
return ContactList ? <ContactList {...props} /> : <Loading />; return ContactList ? <ContactList {...props} /> : <Loading />;

View File

@ -1,4 +1,3 @@
import type { FC } from '../../../lib/teact/teact';
import { memo, useCallback, useRef } from '../../../lib/teact/teact'; import { memo, useCallback, useRef } from '../../../lib/teact/teact';
import { getActions, withGlobal } from '../../../global'; import { getActions, withGlobal } from '../../../global';
@ -29,7 +28,7 @@ interface StateProps {
const EFFECT_DURATION_MS = 1500; const EFFECT_DURATION_MS = 1500;
const EMOJI_STATUS_SIZE = 24; const EMOJI_STATUS_SIZE = 24;
const StatusButton: FC<StateProps> = ({ emojiStatus, collectibleStatuses, isAccountFrozen }) => { const StatusButton = ({ emojiStatus, collectibleStatuses, isAccountFrozen }: StateProps) => {
const { setEmojiStatus, loadCurrentUser, openFrozenAccountModal } = getActions(); const { setEmojiStatus, loadCurrentUser, openFrozenAccountModal } = getActions();
const buttonRef = useRef<HTMLButtonElement>(); const buttonRef = useRef<HTMLButtonElement>();

View File

@ -1,12 +1,10 @@
import type { FC } from '../../../lib/teact/teact';
import type { OwnProps } from './StatusPickerMenu'; import type { OwnProps } from './StatusPickerMenu';
import { Bundles } from '../../../util/moduleLoader'; import { Bundles } from '../../../util/moduleLoader';
import useModuleLoader from '../../../hooks/useModuleLoader'; import useModuleLoader from '../../../hooks/useModuleLoader';
const StatusPickerMenuAsync: FC<OwnProps> = (props) => { const StatusPickerMenuAsync = (props: OwnProps) => {
const { isOpen } = props; const { isOpen } = props;
const StatusPickerMenu = useModuleLoader(Bundles.Extra, 'StatusPickerMenu', !isOpen); const StatusPickerMenu = useModuleLoader(Bundles.Extra, 'StatusPickerMenu', !isOpen);

View File

@ -1,5 +1,3 @@
import type { FC } from '../../../lib/teact/teact';
import type { OwnProps } from './NewChat'; import type { OwnProps } from './NewChat';
import { Bundles } from '../../../util/moduleLoader'; import { Bundles } from '../../../util/moduleLoader';
@ -8,7 +6,7 @@ import useModuleLoader from '../../../hooks/useModuleLoader';
import Loading from '../../ui/Loading'; import Loading from '../../ui/Loading';
const NewChatAsync: FC<OwnProps> = (props) => { const NewChatAsync = (props: OwnProps) => {
const NewChat = useModuleLoader(Bundles.Extra, 'NewChat'); const NewChat = useModuleLoader(Bundles.Extra, 'NewChat');
return NewChat ? <NewChat {...props} /> : <Loading />; return NewChat ? <NewChat {...props} /> : <Loading />;

View File

@ -1,5 +1,3 @@
import type { FC } from '../../../lib/teact/teact';
import type { OwnProps } from './LeftSearch'; import type { OwnProps } from './LeftSearch';
import { Bundles } from '../../../util/moduleLoader'; import { Bundles } from '../../../util/moduleLoader';
@ -8,7 +6,7 @@ import useModuleLoader from '../../../hooks/useModuleLoader';
import Loading from '../../ui/Loading'; import Loading from '../../ui/Loading';
const LeftSearchAsync: FC<OwnProps> = (props) => { const LeftSearchAsync = (props: OwnProps) => {
const LeftSearch = useModuleLoader(Bundles.Extra, 'LeftSearch'); const LeftSearch = useModuleLoader(Bundles.Extra, 'LeftSearch');
return LeftSearch ? <LeftSearch {...props} /> : <Loading />; return LeftSearch ? <LeftSearch {...props} /> : <Loading />;

View File

@ -1,5 +1,3 @@
import type { FC } from '../../../lib/teact/teact';
import type { OwnProps } from './Settings'; import type { OwnProps } from './Settings';
import { Bundles } from '../../../util/moduleLoader'; import { Bundles } from '../../../util/moduleLoader';
@ -8,7 +6,7 @@ import useModuleLoader from '../../../hooks/useModuleLoader';
import Loading from '../../ui/Loading'; import Loading from '../../ui/Loading';
const SettingsAsync: FC<OwnProps> = (props) => { const SettingsAsync = (props: OwnProps) => {
const Settings = useModuleLoader(Bundles.Extra, 'Settings'); const Settings = useModuleLoader(Bundles.Extra, 'Settings');
return Settings ? <Settings {...props} /> : <Loading />; return Settings ? <Settings {...props} /> : <Loading />;

View File

@ -1,12 +1,10 @@
import type { FC } from '../../lib/teact/teact';
import type { OwnProps } from './AttachBotRecipientPicker'; import type { OwnProps } from './AttachBotRecipientPicker';
import { Bundles } from '../../util/moduleLoader'; import { Bundles } from '../../util/moduleLoader';
import useModuleLoader from '../../hooks/useModuleLoader'; import useModuleLoader from '../../hooks/useModuleLoader';
const AttachBotRecipientPickerAsync: FC<OwnProps> = (props) => { const AttachBotRecipientPickerAsync = (props: OwnProps) => {
const { requestedAttachBotInChat } = props; const { requestedAttachBotInChat } = props;
const AttachBotRecipientPicker = useModuleLoader( const AttachBotRecipientPicker = useModuleLoader(
Bundles.Extra, 'AttachBotRecipientPicker', !requestedAttachBotInChat, Bundles.Extra, 'AttachBotRecipientPicker', !requestedAttachBotInChat,

View File

@ -1,12 +1,10 @@
import type { FC } from '../../lib/teact/teact';
import type { OwnProps } from './BotTrustModal'; import type { OwnProps } from './BotTrustModal';
import { Bundles } from '../../util/moduleLoader'; import { Bundles } from '../../util/moduleLoader';
import useModuleLoader from '../../hooks/useModuleLoader'; import useModuleLoader from '../../hooks/useModuleLoader';
const BotTrustModalAsync: FC<OwnProps> = (props) => { const BotTrustModalAsync = (props: OwnProps) => {
const { bot } = props; const { bot } = props;
const BotTrustModal = useModuleLoader(Bundles.Extra, 'BotTrustModal', !bot); const BotTrustModal = useModuleLoader(Bundles.Extra, 'BotTrustModal', !bot);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../lib/teact/teact';
import type { OwnProps } from './DeleteFolderDialog'; import type { OwnProps } from './DeleteFolderDialog';
import { Bundles } from '../../util/moduleLoader'; import { Bundles } from '../../util/moduleLoader';
import useModuleLoader from '../../hooks/useModuleLoader'; import useModuleLoader from '../../hooks/useModuleLoader';
const DeleteFolderDialogAsync: FC<OwnProps> = (props) => { const DeleteFolderDialogAsync = (props: OwnProps) => {
const { folder } = props; const { folder } = props;
const DeleteFolderDialog = useModuleLoader(Bundles.Extra, 'DeleteFolderDialog', !folder); const DeleteFolderDialog = useModuleLoader(Bundles.Extra, 'DeleteFolderDialog', !folder);

View File

@ -1,13 +0,0 @@
import type { FC } from '../../lib/teact/teact';
import { Bundles } from '../../util/moduleLoader';
import useModuleLoader from '../../hooks/useModuleLoader';
const DialogsAsync: FC = ({ isOpen }) => {
const Dialogs = useModuleLoader(Bundles.Extra, 'Dialogs', !isOpen);
return Dialogs ? <Dialogs /> : undefined;
};
export default DialogsAsync;

View File

@ -1,4 +1,3 @@
import type { FC } from '../../lib/teact/teact';
import { memo, useEffect } from '../../lib/teact/teact'; import { memo, useEffect } from '../../lib/teact/teact';
import { getActions, withGlobal } from '../../global'; import { getActions, withGlobal } from '../../global';
@ -22,7 +21,7 @@ type StateProps = {
dialogs: (ApiError | ApiContact)[]; dialogs: (ApiError | ApiContact)[];
}; };
const Dialogs: FC<StateProps> = ({ dialogs, currentMessageList }) => { const Dialogs = ({ dialogs, currentMessageList }: StateProps) => {
const { const {
dismissDialog, dismissDialog,
sendMessage, sendMessage,

View File

@ -1,4 +1,3 @@
import type { FC } from '../../lib/teact/teact';
import { memo, useEffect } from '../../lib/teact/teact'; import { memo, useEffect } from '../../lib/teact/teact';
import { getActions, getGlobal, withGlobal } from '../../global'; import { getActions, getGlobal, withGlobal } from '../../global';
@ -23,9 +22,9 @@ const GLOBAL_UPDATE_DEBOUNCE = 1000;
const processedHashes = new Set<string>(); const processedHashes = new Set<string>();
const downloadedHashes = new Set<string>(); const downloadedHashes = new Set<string>();
const DownloadManager: FC<StateProps> = ({ const DownloadManager = ({
activeDownloads, activeDownloads,
}) => { }: StateProps) => {
const { cancelMediaHashDownloads, showNotification } = getActions(); const { cancelMediaHashDownloads, showNotification } = getActions();
const runDebounced = useRunDebounced(GLOBAL_UPDATE_DEBOUNCE, true); const runDebounced = useRunDebounced(GLOBAL_UPDATE_DEBOUNCE, true);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../lib/teact/teact';
import type { OwnProps } from './DraftRecipientPicker'; import type { OwnProps } from './DraftRecipientPicker';
import { Bundles } from '../../util/moduleLoader'; import { Bundles } from '../../util/moduleLoader';
import useModuleLoader from '../../hooks/useModuleLoader'; import useModuleLoader from '../../hooks/useModuleLoader';
const DraftRecipientPickerAsync: FC<OwnProps> = (props) => { const DraftRecipientPickerAsync = (props: OwnProps) => {
const { requestedDraft } = props; const { requestedDraft } = props;
const DraftRecipientPicker = useModuleLoader(Bundles.Extra, 'DraftRecipientPicker', !requestedDraft); const DraftRecipientPicker = useModuleLoader(Bundles.Extra, 'DraftRecipientPicker', !requestedDraft);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../lib/teact/teact';
import type { OwnProps } from './ForwardRecipientPicker'; import type { OwnProps } from './ForwardRecipientPicker';
import { Bundles } from '../../util/moduleLoader'; import { Bundles } from '../../util/moduleLoader';
import useModuleLoader from '../../hooks/useModuleLoader'; import useModuleLoader from '../../hooks/useModuleLoader';
const ForwardRecipientPickerAsync: FC<OwnProps> = (props) => { const ForwardRecipientPickerAsync = (props: OwnProps) => {
const { isOpen } = props; const { isOpen } = props;
const ForwardRecipientPicker = useModuleLoader(Bundles.Extra, 'ForwardRecipientPicker', !isOpen); const ForwardRecipientPicker = useModuleLoader(Bundles.Extra, 'ForwardRecipientPicker', !isOpen);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../lib/teact/teact';
import type { OwnProps } from './HistoryCalendar'; import type { OwnProps } from './HistoryCalendar';
import { Bundles } from '../../util/moduleLoader'; import { Bundles } from '../../util/moduleLoader';
import useModuleLoader from '../../hooks/useModuleLoader'; import useModuleLoader from '../../hooks/useModuleLoader';
const HistoryCalendarAsync: FC<OwnProps> = (props) => { const HistoryCalendarAsync = (props: OwnProps) => {
const { isOpen } = props; const { isOpen } = props;
const HistoryCalendar = useModuleLoader(Bundles.Extra, 'HistoryCalendar', !isOpen); const HistoryCalendar = useModuleLoader(Bundles.Extra, 'HistoryCalendar', !isOpen);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../lib/teact/teact';
import type { OwnProps } from './LockScreen'; import type { OwnProps } from './LockScreen';
import { Bundles } from '../../util/moduleLoader'; import { Bundles } from '../../util/moduleLoader';
import useModuleLoader from '../../hooks/useModuleLoader'; import useModuleLoader from '../../hooks/useModuleLoader';
const LockScreenAsync: FC<OwnProps> = (props) => { const LockScreenAsync = (props: OwnProps) => {
const { isLocked } = props; const { isLocked } = props;
const LockScreen = useModuleLoader(Bundles.Main, 'LockScreen', !isLocked); const LockScreen = useModuleLoader(Bundles.Main, 'LockScreen', !isLocked);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../lib/teact/teact';
import type { OwnProps } from './Main'; import type { OwnProps } from './Main';
import { Bundles } from '../../util/moduleLoader'; import { Bundles } from '../../util/moduleLoader';
import useModuleLoader from '../../hooks/useModuleLoader'; import useModuleLoader from '../../hooks/useModuleLoader';
const MainAsync: FC<OwnProps> = (props) => { const MainAsync = (props: OwnProps) => {
const Main = useModuleLoader(Bundles.Main, 'Main'); const Main = useModuleLoader(Bundles.Main, 'Main');
return Main ? <Main {...props} /> : undefined; return Main ? <Main {...props} /> : undefined;

View File

@ -77,7 +77,7 @@ import StoryViewer from '../story/StoryViewer.async';
import AttachBotRecipientPicker from './AttachBotRecipientPicker.async'; import AttachBotRecipientPicker from './AttachBotRecipientPicker.async';
import BotTrustModal from './BotTrustModal.async'; import BotTrustModal from './BotTrustModal.async';
import DeleteFolderDialog from './DeleteFolderDialog.async'; import DeleteFolderDialog from './DeleteFolderDialog.async';
import Dialogs from './Dialogs.async'; import Dialogs from './Dialogs';
import DownloadManager from './DownloadManager'; import DownloadManager from './DownloadManager';
import DraftRecipientPicker from './DraftRecipientPicker.async'; import DraftRecipientPicker from './DraftRecipientPicker.async';
import FoldersSidebar from './FoldersSidebar'; import FoldersSidebar from './FoldersSidebar';
@ -109,7 +109,6 @@ type StateProps = {
isMediaViewerOpen: boolean; isMediaViewerOpen: boolean;
isStoryViewerOpen: boolean; isStoryViewerOpen: boolean;
isForwardModalOpen: boolean; isForwardModalOpen: boolean;
hasDialogs: boolean;
safeLinkModalUrl?: string; safeLinkModalUrl?: string;
isHistoryCalendarOpen: boolean; isHistoryCalendarOpen: boolean;
shouldSkipHistoryAnimations?: boolean; shouldSkipHistoryAnimations?: boolean;
@ -161,7 +160,6 @@ const Main = ({
isMediaViewerOpen, isMediaViewerOpen,
isStoryViewerOpen, isStoryViewerOpen,
isForwardModalOpen, isForwardModalOpen,
hasDialogs,
activeGroupCallId, activeGroupCallId,
safeLinkModalUrl, safeLinkModalUrl,
isHistoryCalendarOpen, isHistoryCalendarOpen,
@ -561,7 +559,7 @@ const Main = ({
<StoryViewer isOpen={isStoryViewerOpen} /> <StoryViewer isOpen={isStoryViewerOpen} />
<ForwardRecipientPicker isOpen={isForwardModalOpen} /> <ForwardRecipientPicker isOpen={isForwardModalOpen} />
<DraftRecipientPicker requestedDraft={requestedDraft} /> <DraftRecipientPicker requestedDraft={requestedDraft} />
<Dialogs isOpen={hasDialogs} /> <Dialogs />
<AudioPlayer noUi /> <AudioPlayer noUi />
<ModalContainer /> <ModalContainer />
<SafeLinkModal url={safeLinkModalUrl} /> <SafeLinkModal url={safeLinkModalUrl} />
@ -627,7 +625,6 @@ export default memo(withGlobal<OwnProps>(
openedGame, openedGame,
isLeftColumnShown, isLeftColumnShown,
historyCalendarSelectedAt, historyCalendarSelectedAt,
dialogs,
newContact, newContact,
ratingPhoneCall, ratingPhoneCall,
premiumModal, premiumModal,
@ -660,7 +657,6 @@ export default memo(withGlobal<OwnProps>(
isStoryViewerOpen: selectIsStoryViewerOpen(global), isStoryViewerOpen: selectIsStoryViewerOpen(global),
isForwardModalOpen: selectIsForwardModalOpen(global), isForwardModalOpen: selectIsForwardModalOpen(global),
isReactionPickerOpen: selectIsReactionPickerOpen(global), isReactionPickerOpen: selectIsReactionPickerOpen(global),
hasDialogs: Boolean(dialogs.length),
safeLinkModalUrl, safeLinkModalUrl,
isHistoryCalendarOpen: Boolean(historyCalendarSelectedAt), isHistoryCalendarOpen: Boolean(historyCalendarSelectedAt),
shouldSkipHistoryAnimations, shouldSkipHistoryAnimations,

View File

@ -1,12 +1,10 @@
import type { FC } from '../../lib/teact/teact';
import type { OwnProps } from './NewContactModal'; import type { OwnProps } from './NewContactModal';
import { Bundles } from '../../util/moduleLoader'; import { Bundles } from '../../util/moduleLoader';
import useModuleLoader from '../../hooks/useModuleLoader'; import useModuleLoader from '../../hooks/useModuleLoader';
const NewContactModalAsync: FC<OwnProps> = (props) => { const NewContactModalAsync = (props: OwnProps) => {
const { isOpen } = props; const { isOpen } = props;
const NewContactModal = useModuleLoader(Bundles.Extra, 'NewContactModal', !isOpen); const NewContactModal = useModuleLoader(Bundles.Extra, 'NewContactModal', !isOpen);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../lib/teact/teact';
import type { OwnProps } from './SafeLinkModal'; import type { OwnProps } from './SafeLinkModal';
import { Bundles } from '../../util/moduleLoader'; import { Bundles } from '../../util/moduleLoader';
import useModuleLoader from '../../hooks/useModuleLoader'; import useModuleLoader from '../../hooks/useModuleLoader';
const SafeLinkModalAsync: FC<OwnProps> = (props) => { const SafeLinkModalAsync = (props: OwnProps) => {
const { url } = props; const { url } = props;
const SafeLinkModal = useModuleLoader(Bundles.Extra, 'SafeLinkModal', !url); const SafeLinkModal = useModuleLoader(Bundles.Extra, 'SafeLinkModal', !url);

View File

@ -1,14 +1,14 @@
import type { FC } from '../../lib/teact/teact'; import type { OwnProps } from './WebAppsCloseConfirmationModal';
import { Bundles } from '../../util/moduleLoader'; import { Bundles } from '../../util/moduleLoader';
import useModuleLoader from '../../hooks/useModuleLoader'; import useModuleLoader from '../../hooks/useModuleLoader';
const WebAppsCloseConfirmationModalAsync: FC = (props) => { const WebAppsCloseConfirmationModalAsync = (props: OwnProps) => {
const { modal } = props; const { modal } = props;
const WebAppsCloseConfirmationModal = useModuleLoader(Bundles.Extra, 'WebAppsCloseConfirmationModal', !modal); const WebAppsCloseConfirmationModal = useModuleLoader(Bundles.Extra, 'WebAppsCloseConfirmationModal', !modal);
return WebAppsCloseConfirmationModal ? <WebAppsCloseConfirmationModal isOpen={modal} /> : undefined; return WebAppsCloseConfirmationModal ? <WebAppsCloseConfirmationModal modal={modal} /> : undefined;
}; };
export default WebAppsCloseConfirmationModalAsync; export default WebAppsCloseConfirmationModalAsync;

View File

@ -1,9 +1,10 @@
import type { FC } from '../../lib/teact/teact';
import { import {
memo, useCallback, useRef, useState, memo, useCallback, useRef, useState,
} from '../../lib/teact/teact'; } from '../../lib/teact/teact';
import { getActions } from '../../global'; import { getActions } from '../../global';
import type { TabState } from '../../global/types';
import buildClassName from '../../util/buildClassName'; import buildClassName from '../../util/buildClassName';
import useKeyboardListNavigation from '../../hooks/useKeyboardListNavigation'; import useKeyboardListNavigation from '../../hooks/useKeyboardListNavigation';
@ -14,16 +15,19 @@ import Button from '../ui/Button';
import Checkbox from '../ui/Checkbox'; import Checkbox from '../ui/Checkbox';
import Modal from '../ui/Modal'; import Modal from '../ui/Modal';
type OwnProps = { export type OwnProps = {
isOpen: boolean; modal: TabState['isWebAppsCloseConfirmationModalOpen'];
}; };
const WebAppsCloseConfirmationModal: FC<OwnProps> = ({ const WebAppsCloseConfirmationModal = ({
isOpen, modal,
}) => { }: OwnProps) => {
const { closeWebAppsCloseConfirmationModal, closeWebAppModal } = getActions();
const oldLang = useOldLang(); const oldLang = useOldLang();
const lang = useLang(); const lang = useLang();
const { closeWebAppsCloseConfirmationModal, closeWebAppModal } = getActions();
const isOpen = Boolean(modal);
const [shouldSkipInFuture, setShouldSkipInFuture] = useState(false); const [shouldSkipInFuture, setShouldSkipInFuture] = useState(false);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../../lib/teact/teact';
import type { OwnProps } from './GiveawayModal'; import type { OwnProps } from './GiveawayModal';
import { Bundles } from '../../../util/moduleLoader'; import { Bundles } from '../../../util/moduleLoader';
import useModuleLoader from '../../../hooks/useModuleLoader'; import useModuleLoader from '../../../hooks/useModuleLoader';
const GiveawayModalAsync: FC<OwnProps> = (props) => { const GiveawayModalAsync = (props: OwnProps) => {
const { isOpen } = props; const { isOpen } = props;
const GiveawayModal = useModuleLoader(Bundles.Extra, 'GiveawayModal', !isOpen); const GiveawayModal = useModuleLoader(Bundles.Extra, 'GiveawayModal', !isOpen);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../../lib/teact/teact';
import type { OwnProps } from './PremiumMainModal'; import type { OwnProps } from './PremiumMainModal';
import { Bundles } from '../../../util/moduleLoader'; import { Bundles } from '../../../util/moduleLoader';
import useModuleLoader from '../../../hooks/useModuleLoader'; import useModuleLoader from '../../../hooks/useModuleLoader';
const PremiumMainModalAsync: FC<OwnProps> = (props) => { const PremiumMainModalAsync = (props: OwnProps) => {
const { isOpen } = props; const { isOpen } = props;
const PremiumMainModal = useModuleLoader(Bundles.Extra, 'PremiumMainModal', !isOpen); const PremiumMainModal = useModuleLoader(Bundles.Extra, 'PremiumMainModal', !isOpen);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../../lib/teact/teact';
import type { OwnProps } from './StarsGiftingPickerModal'; import type { OwnProps } from './StarsGiftingPickerModal';
import { Bundles } from '../../../util/moduleLoader'; import { Bundles } from '../../../util/moduleLoader';
import useModuleLoader from '../../../hooks/useModuleLoader'; import useModuleLoader from '../../../hooks/useModuleLoader';
const StarsGiftingPickerModalAsync: FC<OwnProps> = (props) => { const StarsGiftingPickerModalAsync = (props: OwnProps) => {
const { isOpen } = props; const { isOpen } = props;
const StarsGiftingPickerModal = useModuleLoader(Bundles.Stars, 'StarsGiftingPickerModal', !isOpen); const StarsGiftingPickerModal = useModuleLoader(Bundles.Stars, 'StarsGiftingPickerModal', !isOpen);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../../../lib/teact/teact';
import type { OwnProps } from './PremiumLimitReachedModal'; import type { OwnProps } from './PremiumLimitReachedModal';
import { Bundles } from '../../../../util/moduleLoader'; import { Bundles } from '../../../../util/moduleLoader';
import useModuleLoader from '../../../../hooks/useModuleLoader'; import useModuleLoader from '../../../../hooks/useModuleLoader';
const PremiumLimitReachedModalAsync: FC<OwnProps> = (props) => { const PremiumLimitReachedModalAsync = (props: OwnProps) => {
const { limit } = props; const { limit } = props;
const PremiumLimitReachedModal = useModuleLoader(Bundles.Extra, 'PremiumLimitReachedModal', !limit); const PremiumLimitReachedModal = useModuleLoader(Bundles.Extra, 'PremiumLimitReachedModal', !limit);

View File

@ -1,4 +1,3 @@
import type { FC } from '../../../../lib/teact/teact';
import { import {
memo, useEffect, useRef, useState, memo, useEffect, useRef, useState,
} from '../../../../lib/teact/teact'; } from '../../../../lib/teact/teact';
@ -25,24 +24,26 @@ type StateProps = {
stickers: GlobalState['stickers']['premium']['stickers']; stickers: GlobalState['stickers']['premium']['stickers'];
}; };
const EMOJI_SIZE_MULTIPLIER = 0.6; type StickerProps = {
const EFFECT_SIZE_MULTIPLIER = 0.8;
const MAX_EMOJIS = 15;
const ENDED_DELAY = 150;
const AnimatedCircleSticker: FC<{
size: number; size: number;
realIndex: number; realIndex: number;
sticker: ApiSticker; sticker: ApiSticker;
index: number; index: number;
maxLength: number; maxLength: number;
canPlay: boolean;
onClick: (index: number) => void; onClick: (index: number) => void;
onEnded: (index: number) => void; onEnded: (index: number) => void;
canPlay: boolean; };
}> = ({
const EMOJI_SIZE_MULTIPLIER = 0.6;
const EFFECT_SIZE_MULTIPLIER = 0.8;
const MAX_EMOJIS = 15;
const ENDED_DELAY = 150;
const AnimatedCircleSticker = ({
size, realIndex, canPlay, size, realIndex, canPlay,
sticker, index, maxLength, onClick, onEnded, sticker, index, maxLength, onClick, onEnded,
}) => { }: StickerProps) => {
const mediaData = useMedia(`sticker${sticker.id}`); const mediaData = useMedia(`sticker${sticker.id}`);
const mediaDataAround = useMedia(`sticker${sticker.id}?size=f`); const mediaDataAround = useMedia(`sticker${sticker.id}?size=f`);
@ -103,9 +104,9 @@ const AnimatedCircleSticker: FC<{
); );
}; };
const PremiumFeaturePreviewStickers: FC<OwnProps & StateProps> = ({ const PremiumFeaturePreviewStickers = ({
stickers, isActive, stickers, isActive,
}) => { }: OwnProps & StateProps) => {
const containerRef = useRef<HTMLDivElement>(); const containerRef = useRef<HTMLDivElement>();
const [offset, setOffset] = useState(0); const [offset, setOffset] = useState(0);
const [size, setSize] = useState(0); const [size, setSize] = useState(0);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../lib/teact/teact';
import type { OwnProps } from './ChatLanguageModal'; import type { OwnProps } from './ChatLanguageModal';
import { Bundles } from '../../util/moduleLoader'; import { Bundles } from '../../util/moduleLoader';
import useModuleLoader from '../../hooks/useModuleLoader'; import useModuleLoader from '../../hooks/useModuleLoader';
const ChatLanguageModalAsync: FC<OwnProps> = (props) => { const ChatLanguageModalAsync = (props: OwnProps) => {
const { isOpen } = props; const { isOpen } = props;
const ChatLanguageModal = useModuleLoader(Bundles.Extra, 'ChatLanguageModal', !isOpen); const ChatLanguageModal = useModuleLoader(Bundles.Extra, 'ChatLanguageModal', !isOpen);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../lib/teact/teact';
import type { OwnProps } from './EmojiInteractionAnimation'; import type { OwnProps } from './EmojiInteractionAnimation';
import { Bundles } from '../../util/moduleLoader'; import { Bundles } from '../../util/moduleLoader';
import useModuleLoader from '../../hooks/useModuleLoader'; import useModuleLoader from '../../hooks/useModuleLoader';
const EmojiInteractionAnimationAsync: FC<OwnProps> = (props) => { const EmojiInteractionAnimationAsync = (props: OwnProps) => {
const { activeEmojiInteraction } = props; const { activeEmojiInteraction } = props;
const EmojiInteractionAnimation = useModuleLoader( const EmojiInteractionAnimation = useModuleLoader(
Bundles.Extra, 'EmojiInteractionAnimation', !activeEmojiInteraction, Bundles.Extra, 'EmojiInteractionAnimation', !activeEmojiInteraction,

View File

@ -1,12 +1,10 @@
import type { FC } from '../../lib/teact/teact';
import type { OwnProps } from './HeaderMenuContainer'; import type { OwnProps } from './HeaderMenuContainer';
import { Bundles } from '../../util/moduleLoader'; import { Bundles } from '../../util/moduleLoader';
import useModuleLoader from '../../hooks/useModuleLoader'; import useModuleLoader from '../../hooks/useModuleLoader';
const HeaderMenuContainerAsync: FC<OwnProps> = (props) => { const HeaderMenuContainerAsync = (props: OwnProps) => {
const { isOpen } = props; const { isOpen } = props;
const HeaderMenuContainer = useModuleLoader(Bundles.Extra, 'HeaderMenuContainer', !isOpen); const HeaderMenuContainer = useModuleLoader(Bundles.Extra, 'HeaderMenuContainer', !isOpen);

View File

@ -1,4 +1,3 @@
import type { FC } from '../../lib/teact/teact';
import { memo } from '../../lib/teact/teact'; import { memo } from '../../lib/teact/teact';
import { getActions, withGlobal } from '../../global'; import { getActions, withGlobal } from '../../global';
@ -15,35 +14,38 @@ type StateProps = {
// Actual `MessageList` components are unmounted when deep in the history, // Actual `MessageList` components are unmounted when deep in the history,
// so we need a separate component just for handling history // so we need a separate component just for handling history
const MessageListHistoryHandler: FC<StateProps> = ({ messageLists }) => { const MessageListHistoryHandler = ({ messageLists }: StateProps) => {
const { openChat } = getActions(); const { openChat } = getActions();
const closeChat = () => { const closeChat = () => {
openChat({ id: undefined }, { forceSyncOnIOs: true }); openChat({ id: undefined }, { forceSyncOnIOs: true });
}; };
const MessageHistoryRecord: FC<GlobalMessageList> = ({ chatId, type, threadId }) => {
useHistoryBack({
isActive: true,
hash: createLocationHash(chatId, type, threadId),
onBack: closeChat,
});
};
return ( return (
<div> <div>
{messageLists?.map((messageList, i) => ( {messageLists?.map((messageList, i) => (
<MessageHistoryRecord <MessageHistoryRecord
key={`${messageList.chatId}_${messageList.threadId}_${messageList.type}_${i}`} key={`${messageList.chatId}_${messageList.threadId}_${messageList.type}_${i}`}
{...messageList} {...messageList}
onBack={closeChat}
/> />
))} ))}
</div> </div>
); );
}; };
const MessageHistoryRecord = ({
chatId, type, threadId, onBack,
}: GlobalMessageList & { onBack: NoneToVoidFunction }) => {
useHistoryBack({
isActive: true,
hash: createLocationHash(chatId, type, threadId),
onBack,
});
return undefined;
};
export default memo(withGlobal( export default memo(withGlobal(
(global): Complete<StateProps> => { (global): Complete<StateProps> => {
return { return {

View File

@ -1,12 +1,10 @@
import type { FC } from '../../lib/teact/teact';
import type { OwnProps } from './MessageSelectToolbar'; import type { OwnProps } from './MessageSelectToolbar';
import { Bundles } from '../../util/moduleLoader'; import { Bundles } from '../../util/moduleLoader';
import useModuleLoader from '../../hooks/useModuleLoader'; import useModuleLoader from '../../hooks/useModuleLoader';
const MessageSelectToolbarAsync: FC<OwnProps> = (props) => { const MessageSelectToolbarAsync = (props: OwnProps) => {
const { isActive } = props; const { isActive } = props;
const MessageSelectToolbar = useModuleLoader(Bundles.Extra, 'MessageSelectToolbar', !isActive); const MessageSelectToolbar = useModuleLoader(Bundles.Extra, 'MessageSelectToolbar', !isActive);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../lib/teact/teact';
import type { OwnProps } from './ReactorListModal'; import type { OwnProps } from './ReactorListModal';
import { Bundles } from '../../util/moduleLoader'; import { Bundles } from '../../util/moduleLoader';
import useModuleLoader from '../../hooks/useModuleLoader'; import useModuleLoader from '../../hooks/useModuleLoader';
const ReactorListModalAsync: FC<OwnProps> = (props) => { const ReactorListModalAsync = (props: OwnProps) => {
const { isOpen } = props; const { isOpen } = props;
const ReactorListModal = useModuleLoader(Bundles.Extra, 'ReactorListModal', !isOpen); const ReactorListModal = useModuleLoader(Bundles.Extra, 'ReactorListModal', !isOpen);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../../lib/teact/teact';
import type { OwnProps } from './AttachmentModal'; import type { OwnProps } from './AttachmentModal';
import { Bundles } from '../../../util/moduleLoader'; import { Bundles } from '../../../util/moduleLoader';
import useModuleLoader from '../../../hooks/useModuleLoader'; import useModuleLoader from '../../../hooks/useModuleLoader';
const AttachmentModalAsync: FC<OwnProps> = (props) => { const AttachmentModalAsync = (props: OwnProps) => {
const { attachments } = props; const { attachments } = props;
const AttachmentModal = useModuleLoader(Bundles.Extra, 'AttachmentModal', !attachments.length); const AttachmentModal = useModuleLoader(Bundles.Extra, 'AttachmentModal', !attachments.length);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../../lib/teact/teact';
import type { OwnProps } from './BotCommandMenu'; import type { OwnProps } from './BotCommandMenu';
import { Bundles } from '../../../util/moduleLoader'; import { Bundles } from '../../../util/moduleLoader';
import useModuleLoader from '../../../hooks/useModuleLoader'; import useModuleLoader from '../../../hooks/useModuleLoader';
const BotCommandMenuAsync: FC<OwnProps> = (props) => { const BotCommandMenuAsync = (props: OwnProps) => {
const { isOpen } = props; const { isOpen } = props;
const BotCommandMenu = useModuleLoader(Bundles.Extra, 'BotCommandMenu', !isOpen); const BotCommandMenu = useModuleLoader(Bundles.Extra, 'BotCommandMenu', !isOpen);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../../lib/teact/teact';
import type { OwnProps } from './ChatCommandTooltip'; import type { OwnProps } from './ChatCommandTooltip';
import { Bundles } from '../../../util/moduleLoader'; import { Bundles } from '../../../util/moduleLoader';
import useModuleLoader from '../../../hooks/useModuleLoader'; import useModuleLoader from '../../../hooks/useModuleLoader';
const ChatCommandTooltipAsync: FC<OwnProps> = (props) => { const ChatCommandTooltipAsync = (props: OwnProps) => {
const { isOpen } = props; const { isOpen } = props;
const ChatCommandTooltip = useModuleLoader(Bundles.Extra, 'ChatCommandTooltip', !isOpen); const ChatCommandTooltip = useModuleLoader(Bundles.Extra, 'ChatCommandTooltip', !isOpen);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../../lib/teact/teact';
import type { OwnProps } from './CustomEmojiTooltip'; import type { OwnProps } from './CustomEmojiTooltip';
import { Bundles } from '../../../util/moduleLoader'; import { Bundles } from '../../../util/moduleLoader';
import useModuleLoader from '../../../hooks/useModuleLoader'; import useModuleLoader from '../../../hooks/useModuleLoader';
const CustomEmojiTooltipAsync: FC<OwnProps> = (props) => { const CustomEmojiTooltipAsync = (props: OwnProps) => {
const { isOpen } = props; const { isOpen } = props;
const CustomEmojiTooltip = useModuleLoader(Bundles.Extra, 'CustomEmojiTooltip', !isOpen); const CustomEmojiTooltip = useModuleLoader(Bundles.Extra, 'CustomEmojiTooltip', !isOpen);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../../lib/teact/teact';
import type { OwnProps } from './CustomSendMenu'; import type { OwnProps } from './CustomSendMenu';
import { Bundles } from '../../../util/moduleLoader'; import { Bundles } from '../../../util/moduleLoader';
import useModuleLoader from '../../../hooks/useModuleLoader'; import useModuleLoader from '../../../hooks/useModuleLoader';
const CustomSendMenuAsync: FC<OwnProps> = (props) => { const CustomSendMenuAsync = (props: OwnProps) => {
const { isOpen } = props; const { isOpen } = props;
const CustomSend = useModuleLoader(Bundles.Extra, 'CustomSendMenu', !isOpen); const CustomSend = useModuleLoader(Bundles.Extra, 'CustomSendMenu', !isOpen);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../../lib/teact/teact';
import type { OwnProps } from './DropArea'; import type { OwnProps } from './DropArea';
import { Bundles } from '../../../util/moduleLoader'; import { Bundles } from '../../../util/moduleLoader';
import useModuleLoader from '../../../hooks/useModuleLoader'; import useModuleLoader from '../../../hooks/useModuleLoader';
const DropAreaAsync: FC<OwnProps> = (props) => { const DropAreaAsync = (props: OwnProps) => {
const { isOpen } = props; const { isOpen } = props;
const DropArea = useModuleLoader(Bundles.Extra, 'DropArea', !isOpen); const DropArea = useModuleLoader(Bundles.Extra, 'DropArea', !isOpen);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../../lib/teact/teact';
import type { OwnProps } from './EmojiTooltip'; import type { OwnProps } from './EmojiTooltip';
import { Bundles } from '../../../util/moduleLoader'; import { Bundles } from '../../../util/moduleLoader';
import useModuleLoader from '../../../hooks/useModuleLoader'; import useModuleLoader from '../../../hooks/useModuleLoader';
const EmojiTooltipAsync: FC<OwnProps> = (props) => { const EmojiTooltipAsync = (props: OwnProps) => {
const { isOpen } = props; const { isOpen } = props;
const EmojiTooltip = useModuleLoader(Bundles.Extra, 'EmojiTooltip', !isOpen); const EmojiTooltip = useModuleLoader(Bundles.Extra, 'EmojiTooltip', !isOpen);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../../lib/teact/teact';
import type { OwnProps } from './InlineBotTooltip'; import type { OwnProps } from './InlineBotTooltip';
import { Bundles } from '../../../util/moduleLoader'; import { Bundles } from '../../../util/moduleLoader';
import useModuleLoader from '../../../hooks/useModuleLoader'; import useModuleLoader from '../../../hooks/useModuleLoader';
const InlineBotTooltipAsync: FC<OwnProps> = (props) => { const InlineBotTooltipAsync = (props: OwnProps) => {
const { isOpen } = props; const { isOpen } = props;
const InlineBotTooltip = useModuleLoader(Bundles.Extra, 'InlineBotTooltip', !isOpen); const InlineBotTooltip = useModuleLoader(Bundles.Extra, 'InlineBotTooltip', !isOpen);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../../lib/teact/teact';
import type { OwnProps } from './MentionTooltip'; import type { OwnProps } from './MentionTooltip';
import { Bundles } from '../../../util/moduleLoader'; import { Bundles } from '../../../util/moduleLoader';
import useModuleLoader from '../../../hooks/useModuleLoader'; import useModuleLoader from '../../../hooks/useModuleLoader';
const MentionTooltipAsync: FC<OwnProps> = (props) => { const MentionTooltipAsync = (props: OwnProps) => {
const { isOpen } = props; const { isOpen } = props;
const MentionTooltip = useModuleLoader(Bundles.Extra, 'MentionTooltip', !isOpen); const MentionTooltip = useModuleLoader(Bundles.Extra, 'MentionTooltip', !isOpen);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../../lib/teact/teact';
import type { OwnProps } from './PollModal'; import type { OwnProps } from './PollModal';
import { Bundles } from '../../../util/moduleLoader'; import { Bundles } from '../../../util/moduleLoader';
import useModuleLoader from '../../../hooks/useModuleLoader'; import useModuleLoader from '../../../hooks/useModuleLoader';
const PollModalAsync: FC<OwnProps> = (props) => { const PollModalAsync = (props: OwnProps) => {
const { isOpen } = props; const { isOpen } = props;
const PollModal = useModuleLoader(Bundles.Extra, 'PollModal', !isOpen); const PollModal = useModuleLoader(Bundles.Extra, 'PollModal', !isOpen);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../../lib/teact/teact';
import type { OwnProps } from './SendAsMenu'; import type { OwnProps } from './SendAsMenu';
import { Bundles } from '../../../util/moduleLoader'; import { Bundles } from '../../../util/moduleLoader';
import useModuleLoader from '../../../hooks/useModuleLoader'; import useModuleLoader from '../../../hooks/useModuleLoader';
const SendAsMenuAsync: FC<OwnProps> = (props) => { const SendAsMenuAsync = (props: OwnProps) => {
const { isOpen } = props; const { isOpen } = props;
const SendAsMenu = useModuleLoader(Bundles.Extra, 'SendAsMenu', !isOpen); const SendAsMenu = useModuleLoader(Bundles.Extra, 'SendAsMenu', !isOpen);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../../lib/teact/teact';
import type { OwnProps } from './StickerTooltip'; import type { OwnProps } from './StickerTooltip';
import { Bundles } from '../../../util/moduleLoader'; import { Bundles } from '../../../util/moduleLoader';
import useModuleLoader from '../../../hooks/useModuleLoader'; import useModuleLoader from '../../../hooks/useModuleLoader';
const StickerTooltipAsync: FC<OwnProps> = (props) => { const StickerTooltipAsync = (props: OwnProps) => {
const { isOpen } = props; const { isOpen } = props;
const StickerTooltip = useModuleLoader(Bundles.Extra, 'StickerTooltip', !isOpen); const StickerTooltip = useModuleLoader(Bundles.Extra, 'StickerTooltip', !isOpen);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../../lib/teact/teact';
import type { OwnProps } from './SymbolMenu'; import type { OwnProps } from './SymbolMenu';
import { Bundles } from '../../../util/moduleLoader'; import { Bundles } from '../../../util/moduleLoader';
import useModuleLoader from '../../../hooks/useModuleLoader'; import useModuleLoader from '../../../hooks/useModuleLoader';
const SymbolMenuAsync: FC<OwnProps> = (props) => { const SymbolMenuAsync = (props: OwnProps) => {
const { isOpen } = props; const { isOpen } = props;
const SymbolMenu = useModuleLoader(Bundles.Extra, 'SymbolMenu', !isOpen); const SymbolMenu = useModuleLoader(Bundles.Extra, 'SymbolMenu', !isOpen);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../../lib/teact/teact';
import type { OwnProps } from './TextFormatter'; import type { OwnProps } from './TextFormatter';
import { Bundles } from '../../../util/moduleLoader'; import { Bundles } from '../../../util/moduleLoader';
import useModuleLoader from '../../../hooks/useModuleLoader'; import useModuleLoader from '../../../hooks/useModuleLoader';
const TextFormatterAsync: FC<OwnProps> = (props) => { const TextFormatterAsync = (props: OwnProps) => {
const { isOpen } = props; const { isOpen } = props;
const TextFormatter = useModuleLoader(Bundles.Extra, 'TextFormatter', !isOpen); const TextFormatter = useModuleLoader(Bundles.Extra, 'TextFormatter', !isOpen);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../../lib/teact/teact';
import type { OwnProps } from './ToDoListModal'; import type { OwnProps } from './ToDoListModal';
import { Bundles } from '../../../util/moduleLoader'; import { Bundles } from '../../../util/moduleLoader';
import useModuleLoader from '../../../hooks/useModuleLoader'; import useModuleLoader from '../../../hooks/useModuleLoader';
const ToDoListModalAsync: FC<OwnProps> = (props) => { const ToDoListModalAsync = (props: OwnProps) => {
const { modal } = props; const { modal } = props;
const ToDoListModal = useModuleLoader(Bundles.Extra, 'ToDoListModal', !modal); const ToDoListModal = useModuleLoader(Bundles.Extra, 'ToDoListModal', !modal);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../../lib/teact/teact';
import type { OwnProps } from './ContextMenuContainer'; import type { OwnProps } from './ContextMenuContainer';
import { Bundles } from '../../../util/moduleLoader'; import { Bundles } from '../../../util/moduleLoader';
import useModuleLoader from '../../../hooks/useModuleLoader'; import useModuleLoader from '../../../hooks/useModuleLoader';
const ContextMenuContainerAsync: FC<OwnProps> = (props) => { const ContextMenuContainerAsync = (props: OwnProps) => {
const { isOpen } = props; const { isOpen } = props;
const ContextMenuContainer = useModuleLoader(Bundles.Extra, 'ContextMenuContainer', !isOpen); const ContextMenuContainer = useModuleLoader(Bundles.Extra, 'ContextMenuContainer', !isOpen);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../../lib/teact/teact';
import type { OwnProps } from './SponsoredContextMenuContainer'; import type { OwnProps } from './SponsoredContextMenuContainer';
import { Bundles } from '../../../util/moduleLoader'; import { Bundles } from '../../../util/moduleLoader';
import useModuleLoader from '../../../hooks/useModuleLoader'; import useModuleLoader from '../../../hooks/useModuleLoader';
const SponsoredContextMenuContainerAsync: FC<OwnProps> = (props) => { const SponsoredContextMenuContainerAsync = (props: OwnProps) => {
const { isOpen } = props; const { isOpen } = props;
const SponsoredContextMenuContainer = useModuleLoader( const SponsoredContextMenuContainer = useModuleLoader(
Bundles.Extra, 'SponsoredContextMenuContainer', !isOpen, Bundles.Extra, 'SponsoredContextMenuContainer', !isOpen,

View File

@ -1,12 +1,10 @@
import type { FC } from '../../../../lib/teact/teact';
import type { OwnProps } from './ReactionPicker'; import type { OwnProps } from './ReactionPicker';
import { Bundles } from '../../../../util/moduleLoader'; import { Bundles } from '../../../../util/moduleLoader';
import useModuleLoader from '../../../../hooks/useModuleLoader'; import useModuleLoader from '../../../../hooks/useModuleLoader';
const ReactionPickerAsync: FC<OwnProps> = (props) => { const ReactionPickerAsync = (props: OwnProps) => {
const { isOpen } = props; const { isOpen } = props;
const ReactionPicker = useModuleLoader(Bundles.Extra, 'ReactionPicker', !isOpen); const ReactionPicker = useModuleLoader(Bundles.Extra, 'ReactionPicker', !isOpen);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../../lib/teact/teact';
import type { OwnProps } from './MiddleSearch'; import type { OwnProps } from './MiddleSearch';
import { Bundles } from '../../../util/moduleLoader'; import { Bundles } from '../../../util/moduleLoader';
import useModuleLoader from '../../../hooks/useModuleLoader'; import useModuleLoader from '../../../hooks/useModuleLoader';
const MiddleSearchAsync: FC<OwnProps> = (props) => { const MiddleSearchAsync = (props: OwnProps) => {
const { isActive } = props; const { isActive } = props;
const MiddleSearch = useModuleLoader(Bundles.Extra, 'MiddleSearch', !isActive, true); const MiddleSearch = useModuleLoader(Bundles.Extra, 'MiddleSearch', !isActive, true);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../../lib/teact/teact';
import type { OwnProps } from './AboutAdsModal'; import type { OwnProps } from './AboutAdsModal';
import { Bundles } from '../../../util/moduleLoader'; import { Bundles } from '../../../util/moduleLoader';
import useModuleLoader from '../../../hooks/useModuleLoader'; import useModuleLoader from '../../../hooks/useModuleLoader';
const AboutAdsModalAsync: FC<OwnProps> = (props) => { const AboutAdsModalAsync = (props: OwnProps) => {
const { modal } = props; const { modal } = props;
const AboutAdsModal = useModuleLoader(Bundles.Extra, 'AboutAdsModal', !modal); const AboutAdsModal = useModuleLoader(Bundles.Extra, 'AboutAdsModal', !modal);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../../lib/teact/teact';
import type { OwnProps } from './AttachBotInstallModal'; import type { OwnProps } from './AttachBotInstallModal';
import { Bundles } from '../../../util/moduleLoader'; import { Bundles } from '../../../util/moduleLoader';
import useModuleLoader from '../../../hooks/useModuleLoader'; import useModuleLoader from '../../../hooks/useModuleLoader';
const AttachBotInstallModalAsync: FC<OwnProps> = (props) => { const AttachBotInstallModalAsync = (props: OwnProps) => {
const { modal } = props; const { modal } = props;
const AttachBotInstallModal = useModuleLoader(Bundles.Extra, 'AttachBotInstallModal', !modal); const AttachBotInstallModal = useModuleLoader(Bundles.Extra, 'AttachBotInstallModal', !modal);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../../lib/teact/teact';
import type { OwnProps } from './BoostModal'; import type { OwnProps } from './BoostModal';
import { Bundles } from '../../../util/moduleLoader'; import { Bundles } from '../../../util/moduleLoader';
import useModuleLoader from '../../../hooks/useModuleLoader'; import useModuleLoader from '../../../hooks/useModuleLoader';
const BoostModalAsync: FC<OwnProps> = (props) => { const BoostModalAsync = (props: OwnProps) => {
const { modal } = props; const { modal } = props;
const BoostModal = useModuleLoader(Bundles.Extra, 'BoostModal', !modal); const BoostModal = useModuleLoader(Bundles.Extra, 'BoostModal', !modal);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../../lib/teact/teact';
import type { OwnProps } from './ChatInviteModal'; import type { OwnProps } from './ChatInviteModal';
import { Bundles } from '../../../util/moduleLoader'; import { Bundles } from '../../../util/moduleLoader';
import useModuleLoader from '../../../hooks/useModuleLoader'; import useModuleLoader from '../../../hooks/useModuleLoader';
const ChatInviteModalAsync: FC<OwnProps> = (props) => { const ChatInviteModalAsync = (props: OwnProps) => {
const { modal } = props; const { modal } = props;
const ChatInviteModal = useModuleLoader(Bundles.Extra, 'ChatInviteModal', !modal); const ChatInviteModal = useModuleLoader(Bundles.Extra, 'ChatInviteModal', !modal);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../../lib/teact/teact';
import type { OwnProps } from './ChatlistModal'; import type { OwnProps } from './ChatlistModal';
import { Bundles } from '../../../util/moduleLoader'; import { Bundles } from '../../../util/moduleLoader';
import useModuleLoader from '../../../hooks/useModuleLoader'; import useModuleLoader from '../../../hooks/useModuleLoader';
const ChatlistModalAsync: FC<OwnProps> = (props) => { const ChatlistModalAsync = (props: OwnProps) => {
const { modal } = props; const { modal } = props;
const ChatlistModal = useModuleLoader(Bundles.Extra, 'ChatlistModal', !modal); const ChatlistModal = useModuleLoader(Bundles.Extra, 'ChatlistModal', !modal);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../../lib/teact/teact';
import type { OwnProps } from './CollectibleInfoModal'; import type { OwnProps } from './CollectibleInfoModal';
import { Bundles } from '../../../util/moduleLoader'; import { Bundles } from '../../../util/moduleLoader';
import useModuleLoader from '../../../hooks/useModuleLoader'; import useModuleLoader from '../../../hooks/useModuleLoader';
const CollectibleInfoModalAsync: FC<OwnProps> = (props) => { const CollectibleInfoModalAsync = (props: OwnProps) => {
const { modal } = props; const { modal } = props;
const CollectibleInfoModal = useModuleLoader(Bundles.Extra, 'CollectibleInfoModal', !modal); const CollectibleInfoModal = useModuleLoader(Bundles.Extra, 'CollectibleInfoModal', !modal);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../../lib/teact/teact';
import type { OwnProps } from './DeleteAccountModal'; import type { OwnProps } from './DeleteAccountModal';
import { Bundles } from '../../../util/moduleLoader'; import { Bundles } from '../../../util/moduleLoader';
import useModuleLoader from '../../../hooks/useModuleLoader'; import useModuleLoader from '../../../hooks/useModuleLoader';
const DeleteAccountModalAsync: FC<OwnProps> = (props) => { const DeleteAccountModalAsync = (props: OwnProps) => {
const { modal } = props; const { modal } = props;
const DeleteAccountModal = useModuleLoader(Bundles.Extra, 'DeleteAccountModal', !modal); const DeleteAccountModal = useModuleLoader(Bundles.Extra, 'DeleteAccountModal', !modal);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../../lib/teact/teact';
import type { OwnProps } from './EmojiStatusAccessModal'; import type { OwnProps } from './EmojiStatusAccessModal';
import { Bundles } from '../../../util/moduleLoader'; import { Bundles } from '../../../util/moduleLoader';
import useModuleLoader from '../../../hooks/useModuleLoader'; import useModuleLoader from '../../../hooks/useModuleLoader';
const EmojiStatusAccessModalAsync: FC<OwnProps> = (props) => { const EmojiStatusAccessModalAsync = (props: OwnProps) => {
const { modal } = props; const { modal } = props;
const EmojiStatusAccessModal = useModuleLoader(Bundles.Extra, 'EmojiStatusAccessModal', !modal); const EmojiStatusAccessModal = useModuleLoader(Bundles.Extra, 'EmojiStatusAccessModal', !modal);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../../lib/teact/teact';
import type { OwnProps } from './FrozenAccountModal'; import type { OwnProps } from './FrozenAccountModal';
import { Bundles } from '../../../util/moduleLoader'; import { Bundles } from '../../../util/moduleLoader';
import useModuleLoader from '../../../hooks/useModuleLoader'; import useModuleLoader from '../../../hooks/useModuleLoader';
const FrozenAccountModalAsync: FC<OwnProps> = (props) => { const FrozenAccountModalAsync = (props: OwnProps) => {
const { modal } = props; const { modal } = props;
const FrozenAccountModal = useModuleLoader(Bundles.Extra, 'FrozenAccountModal', !modal); const FrozenAccountModal = useModuleLoader(Bundles.Extra, 'FrozenAccountModal', !modal);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../../lib/teact/teact';
import type { OwnProps } from './GiftModal'; import type { OwnProps } from './GiftModal';
import { Bundles } from '../../../util/moduleLoader'; import { Bundles } from '../../../util/moduleLoader';
import useModuleLoader from '../../../hooks/useModuleLoader'; import useModuleLoader from '../../../hooks/useModuleLoader';
const GiftModalAsync: FC<OwnProps> = (props) => { const GiftModalAsync = (props: OwnProps) => {
const { modal } = props; const { modal } = props;
const GiftModal = useModuleLoader(Bundles.Stars, 'GiftModal', !modal); const GiftModal = useModuleLoader(Bundles.Stars, 'GiftModal', !modal);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../../lib/teact/teact';
import type { OwnProps } from './StarGiftPriceDecreaseInfoModal'; import type { OwnProps } from './StarGiftPriceDecreaseInfoModal';
import { Bundles } from '../../../util/moduleLoader'; import { Bundles } from '../../../util/moduleLoader';
import useModuleLoader from '../../../hooks/useModuleLoader'; import useModuleLoader from '../../../hooks/useModuleLoader';
const StarGiftPriceDecreaseInfoModalAsync: FC<OwnProps> = (props) => { const StarGiftPriceDecreaseInfoModalAsync = (props: OwnProps) => {
const { modal } = props; const { modal } = props;
const StarGiftPriceDecreaseInfoModal = useModuleLoader(Bundles.Stars, 'StarGiftPriceDecreaseInfoModal', !modal); const StarGiftPriceDecreaseInfoModal = useModuleLoader(Bundles.Stars, 'StarGiftPriceDecreaseInfoModal', !modal);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../../../lib/teact/teact';
import type { OwnProps } from './GiftInfoModal'; import type { OwnProps } from './GiftInfoModal';
import { Bundles } from '../../../../util/moduleLoader'; import { Bundles } from '../../../../util/moduleLoader';
import useModuleLoader from '../../../../hooks/useModuleLoader'; import useModuleLoader from '../../../../hooks/useModuleLoader';
const GiftInfoModalAsync: FC<OwnProps> = (props) => { const GiftInfoModalAsync = (props: OwnProps) => {
const { modal } = props; const { modal } = props;
const GiftInfoModal = useModuleLoader(Bundles.Stars, 'GiftInfoModal', !modal); const GiftInfoModal = useModuleLoader(Bundles.Stars, 'GiftInfoModal', !modal);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../../../lib/teact/teact';
import type { OwnProps } from './GiftLockedModal'; import type { OwnProps } from './GiftLockedModal';
import { Bundles } from '../../../../util/moduleLoader'; import { Bundles } from '../../../../util/moduleLoader';
import useModuleLoader from '../../../../hooks/useModuleLoader'; import useModuleLoader from '../../../../hooks/useModuleLoader';
const GiftLockedModalAsync: FC<OwnProps> = (props) => { const GiftLockedModalAsync = (props: OwnProps) => {
const { modal } = props; const { modal } = props;
const GiftLockedModal = useModuleLoader(Bundles.Stars, 'GiftLockedModal', !modal); const GiftLockedModal = useModuleLoader(Bundles.Stars, 'GiftLockedModal', !modal);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../../../lib/teact/teact';
import type { OwnProps } from './GiftDescriptionRemoveModal'; import type { OwnProps } from './GiftDescriptionRemoveModal';
import { Bundles } from '../../../../util/moduleLoader'; import { Bundles } from '../../../../util/moduleLoader';
import useModuleLoader from '../../../../hooks/useModuleLoader'; import useModuleLoader from '../../../../hooks/useModuleLoader';
const GiftDescriptionRemoveModalAsync: FC<OwnProps> = (props) => { const GiftDescriptionRemoveModalAsync = (props: OwnProps) => {
const { modal } = props; const { modal } = props;
const GiftDescriptionRemoveModal = useModuleLoader(Bundles.Stars, 'GiftDescriptionRemoveModal', !modal); const GiftDescriptionRemoveModal = useModuleLoader(Bundles.Stars, 'GiftDescriptionRemoveModal', !modal);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../../../lib/teact/teact';
import type { OwnProps } from './GiftRecipientPicker'; import type { OwnProps } from './GiftRecipientPicker';
import { Bundles } from '../../../../util/moduleLoader'; import { Bundles } from '../../../../util/moduleLoader';
import useModuleLoader from '../../../../hooks/useModuleLoader'; import useModuleLoader from '../../../../hooks/useModuleLoader';
const GiftRecipientPickerAsync: FC<OwnProps> = (props) => { const GiftRecipientPickerAsync = (props: OwnProps) => {
const { modal } = props; const { modal } = props;
const GiftRecipientPicker = useModuleLoader(Bundles.Stars, 'GiftRecipientPicker', !modal); const GiftRecipientPicker = useModuleLoader(Bundles.Stars, 'GiftRecipientPicker', !modal);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../../../lib/teact/teact';
import type { OwnProps } from './GiftResalePriceComposerModal'; import type { OwnProps } from './GiftResalePriceComposerModal';
import { Bundles } from '../../../../util/moduleLoader'; import { Bundles } from '../../../../util/moduleLoader';
import useModuleLoader from '../../../../hooks/useModuleLoader'; import useModuleLoader from '../../../../hooks/useModuleLoader';
const GiftResalePriceComposerModalAsync: FC<OwnProps> = (props) => { const GiftResalePriceComposerModalAsync = (props: OwnProps) => {
const { modal } = props; const { modal } = props;
const GiftResalePriceComposerModal = useModuleLoader(Bundles.Stars, 'GiftResalePriceComposerModal', !modal); const GiftResalePriceComposerModal = useModuleLoader(Bundles.Stars, 'GiftResalePriceComposerModal', !modal);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../../../lib/teact/teact';
import type { OwnProps } from './GiftStatusInfoModal'; import type { OwnProps } from './GiftStatusInfoModal';
import { Bundles } from '../../../../util/moduleLoader'; import { Bundles } from '../../../../util/moduleLoader';
import useModuleLoader from '../../../../hooks/useModuleLoader'; import useModuleLoader from '../../../../hooks/useModuleLoader';
const GiftStatusInfoModalAsync: FC<OwnProps> = (props) => { const GiftStatusInfoModalAsync = (props: OwnProps) => {
const { modal } = props; const { modal } = props;
const GiftStatusInfoModal = useModuleLoader(Bundles.Stars, 'GiftStatusInfoModal', !modal); const GiftStatusInfoModal = useModuleLoader(Bundles.Stars, 'GiftStatusInfoModal', !modal);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../../../lib/teact/teact';
import type { OwnProps } from './GiftTransferConfirmModal'; import type { OwnProps } from './GiftTransferConfirmModal';
import { Bundles } from '../../../../util/moduleLoader'; import { Bundles } from '../../../../util/moduleLoader';
import useModuleLoader from '../../../../hooks/useModuleLoader'; import useModuleLoader from '../../../../hooks/useModuleLoader';
const GiftTransferConfirmModalAsync: FC<OwnProps> = (props) => { const GiftTransferConfirmModalAsync = (props: OwnProps) => {
const { modal } = props; const { modal } = props;
const GiftTransferConfirmModal = useModuleLoader( const GiftTransferConfirmModal = useModuleLoader(
Bundles.Stars, Bundles.Stars,

View File

@ -1,12 +1,10 @@
import type { FC } from '../../../../lib/teact/teact';
import type { OwnProps } from './GiftTransferModal'; import type { OwnProps } from './GiftTransferModal';
import { Bundles } from '../../../../util/moduleLoader'; import { Bundles } from '../../../../util/moduleLoader';
import useModuleLoader from '../../../../hooks/useModuleLoader'; import useModuleLoader from '../../../../hooks/useModuleLoader';
const GiftTransferModalAsync: FC<OwnProps> = (props) => { const GiftTransferModalAsync = (props: OwnProps) => {
const { modal } = props; const { modal } = props;
const GiftTransferModal = useModuleLoader(Bundles.Stars, 'GiftTransferModal', !modal); const GiftTransferModal = useModuleLoader(Bundles.Stars, 'GiftTransferModal', !modal);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../../../lib/teact/teact';
import type { OwnProps } from './GiftUpgradeModal'; import type { OwnProps } from './GiftUpgradeModal';
import { Bundles } from '../../../../util/moduleLoader'; import { Bundles } from '../../../../util/moduleLoader';
import useModuleLoader from '../../../../hooks/useModuleLoader'; import useModuleLoader from '../../../../hooks/useModuleLoader';
const GiftUpgradeModalAsync: FC<OwnProps> = (props) => { const GiftUpgradeModalAsync = (props: OwnProps) => {
const { modal } = props; const { modal } = props;
const GiftUpgradeModal = useModuleLoader(Bundles.Stars, 'GiftUpgradeModal', !modal); const GiftUpgradeModal = useModuleLoader(Bundles.Stars, 'GiftUpgradeModal', !modal);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../../../lib/teact/teact';
import type { OwnProps } from './GiftInfoValueModal'; import type { OwnProps } from './GiftInfoValueModal';
import { Bundles } from '../../../../util/moduleLoader'; import { Bundles } from '../../../../util/moduleLoader';
import useModuleLoader from '../../../../hooks/useModuleLoader'; import useModuleLoader from '../../../../hooks/useModuleLoader';
const GiftInfoValueModalAsync: FC<OwnProps> = (props) => { const GiftInfoValueModalAsync = (props: OwnProps) => {
const { modal } = props; const { modal } = props;
const GiftInfoValueModal = useModuleLoader(Bundles.Stars, 'GiftInfoValueModal', !modal); const GiftInfoValueModal = useModuleLoader(Bundles.Stars, 'GiftInfoValueModal', !modal);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../../../lib/teact/teact';
import type { OwnProps } from './GiftWithdrawModal'; import type { OwnProps } from './GiftWithdrawModal';
import { Bundles } from '../../../../util/moduleLoader'; import { Bundles } from '../../../../util/moduleLoader';
import useModuleLoader from '../../../../hooks/useModuleLoader'; import useModuleLoader from '../../../../hooks/useModuleLoader';
const GiftWithdrawModalAsync: FC<OwnProps> = (props) => { const GiftWithdrawModalAsync = (props: OwnProps) => {
const { modal } = props; const { modal } = props;
const GiftWithdrawModal = useModuleLoader(Bundles.Stars, 'GiftWithdrawModal', !modal); const GiftWithdrawModal = useModuleLoader(Bundles.Stars, 'GiftWithdrawModal', !modal);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../../lib/teact/teact';
import type { OwnProps } from './GiftCodeModal'; import type { OwnProps } from './GiftCodeModal';
import { Bundles } from '../../../util/moduleLoader'; import { Bundles } from '../../../util/moduleLoader';
import useModuleLoader from '../../../hooks/useModuleLoader'; import useModuleLoader from '../../../hooks/useModuleLoader';
const GiftCodeModalAsync: FC<OwnProps> = (props) => { const GiftCodeModalAsync = (props: OwnProps) => {
const { modal } = props; const { modal } = props;
const GiftCodeModal = useModuleLoader(Bundles.Extra, 'GiftCodeModal', !modal); const GiftCodeModal = useModuleLoader(Bundles.Extra, 'GiftCodeModal', !modal);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../../lib/teact/teact';
import type { OwnProps } from './InviteViaLinkModal'; import type { OwnProps } from './InviteViaLinkModal';
import { Bundles } from '../../../util/moduleLoader'; import { Bundles } from '../../../util/moduleLoader';
import useModuleLoader from '../../../hooks/useModuleLoader'; import useModuleLoader from '../../../hooks/useModuleLoader';
const InviteViaLinkModalAsync: FC<OwnProps> = (props) => { const InviteViaLinkModalAsync = (props: OwnProps) => {
const { modal } = props; const { modal } = props;
const InviteViaLinkModal = useModuleLoader(Bundles.Extra, 'InviteViaLinkModal', !modal); const InviteViaLinkModal = useModuleLoader(Bundles.Extra, 'InviteViaLinkModal', !modal);

View File

@ -1,12 +1,10 @@
import type { FC } from '../../../lib/teact/teact';
import type { OwnProps } from './LocationAccessModal'; import type { OwnProps } from './LocationAccessModal';
import { Bundles } from '../../../util/moduleLoader'; import { Bundles } from '../../../util/moduleLoader';
import useModuleLoader from '../../../hooks/useModuleLoader'; import useModuleLoader from '../../../hooks/useModuleLoader';
const LocationAccessModalAsync: FC<OwnProps> = (props) => { const LocationAccessModalAsync = (props: OwnProps) => {
const { modal } = props; const { modal } = props;
const LocationAccessModal = useModuleLoader(Bundles.Extra, 'LocationAccessModal', !modal); const LocationAccessModal = useModuleLoader(Bundles.Extra, 'LocationAccessModal', !modal);

Some files were not shown because too many files have changed in this diff Show More