From e3bbb0c06128ea547aeaaea3c508f89f143b6cab Mon Sep 17 00:00:00 2001 From: alina sireneva Date: Fri, 24 Jan 2025 20:09:43 +0300 Subject: [PATCH] feat: support custom api id/hash in imported sessions --- .../settings/import/AuthKeyImportDialog.tsx | 35 ++++++++++++--- .../import/StringSessionImportDialog.tsx | 30 ++++++++++++- .../import/tdata/TdataImportDialog.tsx | 28 +++++++++++- .../settings/login/CustomApiDialog.tsx | 45 ++++++++++--------- .../repl/src/lib/components/ui/checkbox.tsx | 16 ++++++- .../repl/src/lib/components/ui/dialog.tsx | 2 +- .../repl/src/lib/components/ui/text-field.tsx | 2 +- packages/worker/src/utils/telegram.ts | 3 +- packages/worker/src/worker/telegram.ts | 8 ++-- 9 files changed, 132 insertions(+), 37 deletions(-) diff --git a/packages/repl/src/components/settings/import/AuthKeyImportDialog.tsx b/packages/repl/src/components/settings/import/AuthKeyImportDialog.tsx index 05066eb..59940a6 100644 --- a/packages/repl/src/components/settings/import/AuthKeyImportDialog.tsx +++ b/packages/repl/src/components/settings/import/AuthKeyImportDialog.tsx @@ -1,9 +1,11 @@ import { workerInvoke } from 'mtcute-repl-worker/client' -import { createEffect, createSignal, on } from 'solid-js' +import { createEffect, createSignal, on, Show } from 'solid-js' +import { unwrap } from 'solid-js/store' import { Button } from '../../../lib/components/ui/button.tsx' import { Checkbox, CheckboxControl, CheckboxLabel } from '../../../lib/components/ui/checkbox.tsx' import { Dialog, DialogContent, DialogDescription, DialogHeader } from '../../../lib/components/ui/dialog.tsx' import { TextField, TextFieldErrorMessage, TextFieldFrame, TextFieldLabel, TextFieldRoot } from '../../../lib/components/ui/text-field.tsx' +import { CustomApiForm, useCustomApiFormState } from '../login/CustomApiDialog.tsx' export function AuthKeyImportDialog(props: { open: boolean @@ -15,6 +17,9 @@ export function AuthKeyImportDialog(props: { const [error, setError] = createSignal() const [loading, setLoading] = createSignal(false) + const [useCustomApi, setUseCustomApi] = createSignal(false) + const [customApi, setCustomApi] = useCustomApiFormState() + let abortController: AbortController | undefined const handleSubmit = async () => { if (!['1', '2', '4', '5'].includes(dcId())) { @@ -32,6 +37,7 @@ export function AuthKeyImportDialog(props: { dcId: Number(dcId()), testMode: testMode(), abortSignal: abortController.signal, + apiOptions: useCustomApi() ? unwrap(customApi) : undefined, }) props.onClose() @@ -66,7 +72,7 @@ export function AuthKeyImportDialog(props: { - + Datacenter ID @@ -79,7 +85,7 @@ export function AuthKeyImportDialog(props: { - + Hex-encoded auth key setError(undefined)} @@ -114,11 +120,30 @@ export function AuthKeyImportDialog(props: { onChange={setTestMode} > - + Use test servers + + + + Use custom connection options + + + + + + +