From 13fcdd700b6a9567fda1105976ab0888370a0d78 Mon Sep 17 00:00:00 2001 From: Maksim Sasnouski Date: Tue, 19 Nov 2024 23:48:37 +0300 Subject: [PATCH 01/34] V8: SafeArea: introduce module --- packages/bridge/src/events/types/events.ts | 25 ++ packages/bridge/src/events/types/misc.ts | 9 +- packages/bridge/src/methods/supports.ts | 2 + packages/bridge/src/methods/types/methods.ts | 12 + .../scopes/components/safe-area/exports.ts | 27 ++ .../components/safe-area/exports.variable.ts | 2 + .../components/safe-area/methods.test.ts | 24 ++ .../scopes/components/safe-area/methods.ts | 241 ++++++++++++++++++ .../scopes/components/safe-area/signals.ts | 39 +++ .../src/scopes/components/safe-area/types.ts | 14 + 10 files changed, 394 insertions(+), 1 deletion(-) create mode 100644 packages/sdk/src/scopes/components/safe-area/exports.ts create mode 100644 packages/sdk/src/scopes/components/safe-area/exports.variable.ts create mode 100644 packages/sdk/src/scopes/components/safe-area/methods.test.ts create mode 100644 packages/sdk/src/scopes/components/safe-area/methods.ts create mode 100644 packages/sdk/src/scopes/components/safe-area/signals.ts create mode 100644 packages/sdk/src/scopes/components/safe-area/types.ts diff --git a/packages/bridge/src/events/types/events.ts b/packages/bridge/src/events/types/events.ts index c6f0b096f..a9b8927d1 100644 --- a/packages/bridge/src/events/types/events.ts +++ b/packages/bridge/src/events/types/events.ts @@ -7,6 +7,7 @@ import type { BiometryAuthRequestStatus, BiometryType, BiometryTokenUpdateStatus, + SafeAreaInset, FullScreenErrorStatus, } from './misc.js'; @@ -249,6 +250,30 @@ export interface Events { * @see https://docs.telegram-mini-apps.com/platform/events#settings-button-pressed */ settings_button_pressed: never; + /** + * Occurs whenever the device's safe area insets change + * (e.g., due to orientation change or screen adjustments). + * @since Mini Apps v8.0 + * @see https://docs.telegram-mini-apps.com/platform/events#safe_area_changed + * */ + safe_area_changed: { + /** + * Safe area inset values. + */ + safeAreaInset: SafeAreaInset; + }; + /** + * Occurs when the safe area for content changes + * (e.g., due to orientation change or screen adjustments). + * @since Mini Apps v8.0 + * @see https://docs.telegram-mini-apps.com/platform/events#content_safe_area_changed + * */ + content_safe_area_changed: { + /** + * Safe area content inset values. + */ + contentSafeAreaInset: SafeAreaInset; + }; /** * Occurs whenever theme settings are changed in the user's Telegram app * (including switching to night mode). diff --git a/packages/bridge/src/events/types/misc.ts b/packages/bridge/src/events/types/misc.ts index 47acfc24d..d58fc1d92 100644 --- a/packages/bridge/src/events/types/misc.ts +++ b/packages/bridge/src/events/types/misc.ts @@ -22,4 +22,11 @@ export type BiometryAuthRequestStatus = 'failed' | 'authorized' | string; export type FullScreenErrorStatus = | 'ALREADY_FULLSCREEN' | 'UNSUPPORTED' - | string; \ No newline at end of file + | string; + +export interface SafeAreaInset { + top: number; + bottom: number; + left: number; + right: number; +} \ No newline at end of file diff --git a/packages/bridge/src/methods/supports.ts b/packages/bridge/src/methods/supports.ts index e67f1c877..7582c62a2 100644 --- a/packages/bridge/src/methods/supports.ts +++ b/packages/bridge/src/methods/supports.ts @@ -101,6 +101,8 @@ export function supports( case 'web_app_setup_secondary_button': case 'web_app_set_bottom_bar_color': return versionLessOrEqual('7.10', paramOrVersion); + case 'web_app_request_safe_area': + case 'web_app_request_content_safe_area': case 'web_app_request_fullscreen': case 'web_app_exit_fullscreen': return versionLessOrEqual('8.0', paramOrVersion); diff --git a/packages/bridge/src/methods/types/methods.ts b/packages/bridge/src/methods/types/methods.ts index 9265a41ab..93a35d372 100644 --- a/packages/bridge/src/methods/types/methods.ts +++ b/packages/bridge/src/methods/types/methods.ts @@ -293,6 +293,18 @@ export interface Methods { * @see https://docs.telegram-mini-apps.com/platform/methods#web-app-request-phone */ web_app_request_phone: CreateMethodParams; + /** + * Requests safe area of the user's phone. + * @since v8.0 + * @see https://docs.telegram-mini-apps.com/platform/methods#web-app-request-safe-area + */ + web_app_request_safe_area: CreateParams; + /** + * Requests content safe area of the user's phone. + * @since v8.0 + * @see https://docs.telegram-mini-apps.com/platform/methods#web-app-request-content-safe-area + */ + web_app_request_content_safe_area: CreateParams; /** * Requests current theme from Telegram. As a result, Telegram will create `theme_changed` event. * @see https://docs.telegram-mini-apps.com/platform/methods#web-app-request-theme diff --git a/packages/sdk/src/scopes/components/safe-area/exports.ts b/packages/sdk/src/scopes/components/safe-area/exports.ts new file mode 100644 index 000000000..b58d73a09 --- /dev/null +++ b/packages/sdk/src/scopes/components/safe-area/exports.ts @@ -0,0 +1,27 @@ +export { + bindCssVars as bindSafeAreaCssVars, + close as closeSafeArea, + isSupported as isSafeAreaSupported, + mount as mountSafeArea, + ready as safeAreaReady, + setHeaderColor as setSafeAreaHeaderColor, + setBackgroundColor as setSafeAreaBackgroundColor, + setBottomBarColor as setSafeAreaBottomBarColor, + unmount as unmountSafeArea, +} from './methods.js'; +export { + backgroundColor as safeAreaBackgroundColor, + bottomBarColor as safeAreaBottomBarColor, + bottomBarColorRGB as safeAreaBottomBarColorRGB, + headerColor as safeAreaHeaderColor, + headerColorRGB as safeAreaHeaderColorRGB, + isMounted as isSafeAreaMounted, + isCssVarsBound as isSafeAreaCssVarsBound, + isDark as isSafeAreaDark, + state as safeAreaState, +} from './signals.js'; +export type { + GetCSSVarNameFn as SafeAreaGetCSSVarNameFn, + State as SafeAreaState, +} from './types.js'; +export * as safeArea from './exports.variable.js'; \ No newline at end of file diff --git a/packages/sdk/src/scopes/components/safe-area/exports.variable.ts b/packages/sdk/src/scopes/components/safe-area/exports.variable.ts new file mode 100644 index 000000000..8187e4ee5 --- /dev/null +++ b/packages/sdk/src/scopes/components/safe-area/exports.variable.ts @@ -0,0 +1,2 @@ +export * from './methods.js'; +export * from './signals.js'; \ No newline at end of file diff --git a/packages/sdk/src/scopes/components/safe-area/methods.test.ts b/packages/sdk/src/scopes/components/safe-area/methods.test.ts new file mode 100644 index 000000000..4aef1d67d --- /dev/null +++ b/packages/sdk/src/scopes/components/safe-area/methods.test.ts @@ -0,0 +1,24 @@ +import { beforeEach, describe, vi } from 'vitest'; +import { testSafety } from '@test-utils/predefined/testSafety.js'; +import { resetPackageState } from '@test-utils/reset/reset.js'; +import { mockPostEvent } from '@test-utils/mockPostEvent.js'; + +import { mount, expand, bindCssVars } from './methods.js'; +import { isMounted } from './signals.js'; + +beforeEach(() => { + resetPackageState(); + vi.restoreAllMocks(); + mockPostEvent(); +}); + +describe.each([ + ['mount', mount, undefined], + ['expand', expand, undefined], + ['bindCssVars', bindCssVars, isMounted], +] as const)('%s', (name, fn, isMounted) => { + testSafety(fn, name, { + component: 'safeArea', + isMounted, + }); +}); diff --git a/packages/sdk/src/scopes/components/safe-area/methods.ts b/packages/sdk/src/scopes/components/safe-area/methods.ts new file mode 100644 index 000000000..19a3fa68b --- /dev/null +++ b/packages/sdk/src/scopes/components/safe-area/methods.ts @@ -0,0 +1,241 @@ +import { + off, + on, + retrieveLaunchParams, + camelToKebab, + createCbCollector, + getStorageValue, + setStorageValue, + deleteCssVar, + setCssVar, + supports, + type EventListener, + type MethodName, +} from '@telegram-apps/bridge'; +import { isPageReload } from '@telegram-apps/navigation'; +import { computed, type Computed } from '@telegram-apps/signals'; + +import { $version, postEvent } from '@/scopes/globals.js'; +import { mount as tpMount } from '@/scopes/components/theme-params/methods.js'; +import { throwCssVarsBound } from '@/scopes/toolkit/throwCssVarsBound.js'; +import { createWrapComplete } from '@/scopes/toolkit/createWrapComplete.js'; +import { createWrapSupported } from '@/scopes/toolkit/createWrapSupported.js'; + +import { + isCssVarsBound, + state, + isMounted, +} from './signals.js'; +import type { GetCssVarNameFn, State } from './types.js'; + +type StorageValue = State; + +const REQUEST_METHOD = 'web_app_request_safe_area'; +const REQUEST_CONTENT_METHOD = 'web_app_request_content_safe_area'; +const CHANGED_EVENT = 'safe_area_changed'; +const CONTENT_CHANGED_EVENT = 'content_safe_area_changed'; +const COMPONENT_NAME = 'safeArea'; + +const isSupportedSchema = { + any: [ + REQUEST_METHOD, + REQUEST_CONTENT_METHOD, + ] as MethodName[], +}; + +/** + * True if the Mini App component is supported. + */ +export const isSupported = computed(() => { + return isSupportedSchema.any.some(method => supports(method, $version())); +}); + +const wrapSupported = createWrapSupported(COMPONENT_NAME, isSupportedSchema); +const wrapComplete = createWrapComplete(COMPONENT_NAME, isMounted, isSupportedSchema); + +/** + * Creates CSS variables connected with the mini app. + * + * Default variables: + * - `--tg-bg-color` + * - `--tg-header-color` + * - `--tg-bottom-bar-color` + * + * Variables are being automatically updated if theme parameters were changed. + * + * @param getCSSVarName - function, returning complete CSS variable name for the specified + * mini app key. + * @returns Function to stop updating variables. + * @throws {TypedError} ERR_UNKNOWN_ENV + * @throws {TypedError} ERR_VARS_ALREADY_BOUND + * @throws {TypedError} ERR_NOT_MOUNTED + * @throws {TypedError} ERR_NOT_INITIALIZED + * @example Using no arguments + * if (bindCssVars.isAvailable()) { + * bindCssVars(); + * } + * @example Using custom CSS vars generator + * if (bindCssVars.isAvailable()) { + * bindCssVars(key => `--my-prefix-${key}`); + * } + */ +export const bindCssVars = wrapComplete( + 'bindCssVars', + (getCSSVarName?: GetCssVarNameFn): VoidFunction => { + isCssVarsBound() && throwCssVarsBound(); + + const [addCleanup, cleanup] = createCbCollector(); + + /** + * Binds specified CSS variable to a signal. + * @param cssVar - CSS variable name. + * @param signal - signal to listen changes to. + */ + function bind(cssVar: string, signal: Computed) { + function update() { + setCssVar(cssVar, signal() || null); + } + + // Instantly set CSS variable. + update(); + + // Remember to clean this relation up. + addCleanup(signal.sub(update), deleteCssVar.bind(null, cssVar)); + } + + getCSSVarName ||= (prop) => `--tg-${camelToKebab(prop)}`; + bind(getCSSVarName('bgColor'), backgroundColorRGB); + bind(getCSSVarName('bottomBarColor'), bottomBarColorRGB); + bind(getCSSVarName('headerColor'), headerColorRGB); + addCleanup(() => { + isCssVarsBound.set(false); + }); + + isCssVarsBound.set(true); + + return cleanup; + }, +); + +/** + * Mounts the component. + * + * This function restores the component state and is automatically saving it in the local storage + * if it changed. + * + * Internally, the function mounts the Theme Params component to work with correctly extracted + * theme palette values. + * @since Mini Apps v8.0 + * @throws {TypedError} ERR_UNKNOWN_ENV + * @throws {TypedError} ERR_NOT_INITIALIZED + * @throws {TypedError} ERR_NOT_SUPPORTED + * @example + * if (mount.isAvailable()) { + * mount(); + * } + */ +export const mount = wrapSupported( + 'mount', + (): void => { + if (!isMounted()) { + const s = isPageReload() && getStorageValue(COMPONENT_NAME); + tpMount(); + + setBackgroundColor.ifAvailable(s ? s.backgroundColor : 'bg_color'); + setBottomBarColor.ifAvailable(s ? s.bottomBarColor : 'bottom_bar_bg_color'); + setHeaderColor.ifAvailable(s ? s.headerColor : 'bg_color'); + + isMounted.set(true); + } + }, +); + +function saveState() { + setStorageValue(COMPONENT_NAME, state()); +} + +/** + * Updates the background color. + * @since Mini Apps v6.1 + * @throws {TypedError} ERR_UNKNOWN_ENV + * @throws {TypedError} ERR_NOT_INITIALIZED + * @throws {TypedError} ERR_NOT_SUPPORTED + * @throws {TypedError} ERR_NOT_MOUNTED + * @example + * if (setBackgroundColor.isAvailable()) { + * setBackgroundColor('bg_color'); + * } + */ +export const setBackgroundColor = wrapComplete( + 'setBackgroundColor', + (color: BackgroundColor): void => { + if (color !== backgroundColor()) { + postEvent(SET_BG_COLOR_METHOD, { color }); + backgroundColor.set(color); + saveState(); + } + }, + SET_BG_COLOR_METHOD, +); + +/** + * Updates the bottom bar background color. + * @since Mini Apps v7.10 + * @throws {TypedError} ERR_UNKNOWN_ENV + * @throws {TypedError} ERR_NOT_INITIALIZED + * @throws {TypedError} ERR_NOT_SUPPORTED + * @throws {TypedError} ERR_NOT_MOUNTED + * @example + * if (setBottomBarColor.isAvailable()) { + * setBottomBarColor('ff11a3'); + * } + */ +export const setBottomBarColor = wrapComplete( + 'setBottomBarColor', + (color: BottomBarColor) => { + if (color !== bottomBarColor()) { + postEvent(SET_BOTTOM_BAR_COLOR_METHOD, { color }); + bottomBarColor.set(color); + saveState(); + } + }, + SET_BOTTOM_BAR_COLOR_METHOD, +); + +/** + * Updates the header color. + * @since Mini Apps v6.1 + * @throws {TypedError} ERR_UNKNOWN_ENV + * @throws {TypedError} ERR_NOT_INITIALIZED + * @throws {TypedError} ERR_NOT_SUPPORTED + * @throws {TypedError} ERR_NOT_MOUNTED + * @example Using known color key + * if (setHeaderColor.isAvailable()) { + * setHeaderColor('bg_color'); + * } + * @example Using RGB + * if (setHeaderColor.isAvailable() && setHeaderColor.supports.rgb()) { + * setHeaderColor('#ffaabb'); + * } + */ +export const setHeaderColor = wrapComplete( + 'setHeaderColor', + (color: HeaderColor): void => { + if (color !== headerColor()) { + postEvent(SET_HEADER_COLOR_METHOD, isRGB(color) ? { color } : { color_key: color }); + headerColor.set(color); + saveState(); + } + }, + SET_HEADER_COLOR_METHOD, + { + rgb: [SET_HEADER_COLOR_METHOD, 'color', isRGB], + }, +); + +/** + * Unmounts the component, removing the listener, saving the component state in the local storage. + */ +export function unmount(): void { + isMounted.set(false); +} diff --git a/packages/sdk/src/scopes/components/safe-area/signals.ts b/packages/sdk/src/scopes/components/safe-area/signals.ts new file mode 100644 index 000000000..3ff489869 --- /dev/null +++ b/packages/sdk/src/scopes/components/safe-area/signals.ts @@ -0,0 +1,39 @@ +import {computed, signal} from '@telegram-apps/signals'; + +import {SafeAreaInset} from "@telegram-apps/bridge"; +import {State} from "@/scopes/components/safe-area/types.js"; + +const initialValue: SafeAreaInset = { + top: 0, + bottom: 0, + left: 0, + right: 0, +} + +/** + * Signal with SafeAreaInset object state. + */ +export const safeAreaInset = signal(initialValue); + +/** + * Signal with ContentSafeAreaInset object state. + */ +export const contentSafeAreaInset = signal(initialValue); + +/** + * True if the component is currently mounted. + */ +export const isMounted = signal(false); + +/** + * True if CSS variables are currently bound. + */ +export const isCssVarsBound = signal(false); + +/** + * Complete component state. + */ +export const state = computed(() => ({ + safeAreaInset: safeAreaInset(), + contentSafeAreaInset: contentSafeAreaInset(), +})); \ No newline at end of file diff --git a/packages/sdk/src/scopes/components/safe-area/types.ts b/packages/sdk/src/scopes/components/safe-area/types.ts new file mode 100644 index 000000000..bb82cc1b8 --- /dev/null +++ b/packages/sdk/src/scopes/components/safe-area/types.ts @@ -0,0 +1,14 @@ +import { SafeAreaInset } from "@telegram-apps/bridge"; + +export interface State { + safeAreaInset: SafeAreaInset; + contentSafeAreaInset: SafeAreaInset; +} + +export interface GetCSSVarNameFn { + /** + * @param property - safe area insets + * @returns Computed complete CSS variable name. + */ + (property: Extract): string; +} \ No newline at end of file From aebf5afb9afd1fd49cd794485e5beb903a540af5 Mon Sep 17 00:00:00 2001 From: Maksim Sasnouski Date: Wed, 20 Nov 2024 11:08:21 +0300 Subject: [PATCH 02/34] V8: SafeArea: bind css vars --- .../scopes/components/safe-area/methods.ts | 83 ++++++++++--------- .../scopes/components/safe-area/signals.ts | 12 ++- 2 files changed, 56 insertions(+), 39 deletions(-) diff --git a/packages/sdk/src/scopes/components/safe-area/methods.ts b/packages/sdk/src/scopes/components/safe-area/methods.ts index 19a3fa68b..25ff912c8 100644 --- a/packages/sdk/src/scopes/components/safe-area/methods.ts +++ b/packages/sdk/src/scopes/components/safe-area/methods.ts @@ -12,21 +12,24 @@ import { type EventListener, type MethodName, } from '@telegram-apps/bridge'; -import { isPageReload } from '@telegram-apps/navigation'; -import { computed, type Computed } from '@telegram-apps/signals'; +import {isPageReload} from '@telegram-apps/navigation'; +import {computed, type Computed} from '@telegram-apps/signals'; -import { $version, postEvent } from '@/scopes/globals.js'; -import { mount as tpMount } from '@/scopes/components/theme-params/methods.js'; -import { throwCssVarsBound } from '@/scopes/toolkit/throwCssVarsBound.js'; -import { createWrapComplete } from '@/scopes/toolkit/createWrapComplete.js'; -import { createWrapSupported } from '@/scopes/toolkit/createWrapSupported.js'; +import {$version, postEvent} from '@/scopes/globals.js'; +import {mount as tpMount} from '@/scopes/components/theme-params/methods.js'; +import {throwCssVarsBound} from '@/scopes/toolkit/throwCssVarsBound.js'; +import {createWrapComplete} from '@/scopes/toolkit/createWrapComplete.js'; +import {createWrapSupported} from '@/scopes/toolkit/createWrapSupported.js'; import { isCssVarsBound, state, isMounted, + safeAreaInset, + contentSafeAreaInset, } from './signals.js'; -import type { GetCssVarNameFn, State } from './types.js'; +import {GetCSSVarNameFn, State} from './types.js'; +import {SafeAreaInset} from "@telegram-apps/bridge"; type StorageValue = State; @@ -57,9 +60,15 @@ const wrapComplete = createWrapComplete(COMPONENT_NAME, isMounted, isSupportedSc * Creates CSS variables connected with the mini app. * * Default variables: - * - `--tg-bg-color` - * - `--tg-header-color` - * - `--tg-bottom-bar-color` + * - `--tg-safe-area-inset-top` + * - `--tg-safe-area-inset-bottom` + * - `--tg-safe-area-inset-left` + * - `--tg-safe-area-inset-right` + + * - `--tg-content-safe-area-inset-top` + * - `--tg-content-safe-area-inset-bottom` + * - `--tg-content-safe-area-inset-left` + * - `--tg-content-safe-area-inset-right` * * Variables are being automatically updated if theme parameters were changed. * @@ -81,39 +90,37 @@ const wrapComplete = createWrapComplete(COMPONENT_NAME, isMounted, isSupportedSc */ export const bindCssVars = wrapComplete( 'bindCssVars', - (getCSSVarName?: GetCssVarNameFn): VoidFunction => { + (getCSSVarName?: GetCSSVarNameFn): VoidFunction => { isCssVarsBound() && throwCssVarsBound(); - const [addCleanup, cleanup] = createCbCollector(); + type Component = "safeArea" | "contentSafeArea"; + const props = ['top', 'bottom', 'left', 'right'] as const; - /** - * Binds specified CSS variable to a signal. - * @param cssVar - CSS variable name. - * @param signal - signal to listen changes to. - */ - function bind(cssVar: string, signal: Computed) { - function update() { - setCssVar(cssVar, signal() || null); - } + const getCompCSSVarName = (component: Component) => + getCSSVarName ||= (prop) => `--tg-${camelToKebab(component)}-${camelToKebab(prop)}`; - // Instantly set CSS variable. - update(); - - // Remember to clean this relation up. - addCleanup(signal.sub(update), deleteCssVar.bind(null, cssVar)); + function actualize(component: Component): void { + const fn = component === "safeArea" ? safeAreaInset : contentSafeAreaInset; + props.forEach(prop => { + setCssVar(getCompCSSVarName(component)(prop), `${fn()[prop]}px`); + }); } - getCSSVarName ||= (prop) => `--tg-${camelToKebab(prop)}`; - bind(getCSSVarName('bgColor'), backgroundColorRGB); - bind(getCSSVarName('bottomBarColor'), bottomBarColorRGB); - bind(getCSSVarName('headerColor'), headerColorRGB); - addCleanup(() => { - isCssVarsBound.set(false); - }); + const actualizeSA = () => actualize("safeArea"); + const actualizeCSA = () => actualize("contentSafeArea"); + actualizeSA(); + actualizeCSA(); + state.sub(actualizeSA); + state.sub(actualizeCSA); isCssVarsBound.set(true); - return cleanup; + return () => { + props.forEach(deleteCssVar); + state.unsub(actualizeSA); + state.unsub(actualizeCSA); + isCssVarsBound.set(false); + }; }, ); @@ -170,7 +177,7 @@ export const setBackgroundColor = wrapComplete( 'setBackgroundColor', (color: BackgroundColor): void => { if (color !== backgroundColor()) { - postEvent(SET_BG_COLOR_METHOD, { color }); + postEvent(SET_BG_COLOR_METHOD, {color}); backgroundColor.set(color); saveState(); } @@ -194,7 +201,7 @@ export const setBottomBarColor = wrapComplete( 'setBottomBarColor', (color: BottomBarColor) => { if (color !== bottomBarColor()) { - postEvent(SET_BOTTOM_BAR_COLOR_METHOD, { color }); + postEvent(SET_BOTTOM_BAR_COLOR_METHOD, {color}); bottomBarColor.set(color); saveState(); } @@ -222,7 +229,7 @@ export const setHeaderColor = wrapComplete( 'setHeaderColor', (color: HeaderColor): void => { if (color !== headerColor()) { - postEvent(SET_HEADER_COLOR_METHOD, isRGB(color) ? { color } : { color_key: color }); + postEvent(SET_HEADER_COLOR_METHOD, isRGB(color) ? {color} : {color_key: color}); headerColor.set(color); saveState(); } diff --git a/packages/sdk/src/scopes/components/safe-area/signals.ts b/packages/sdk/src/scopes/components/safe-area/signals.ts index 3ff489869..a95b9cab0 100644 --- a/packages/sdk/src/scopes/components/safe-area/signals.ts +++ b/packages/sdk/src/scopes/components/safe-area/signals.ts @@ -36,4 +36,14 @@ export const isCssVarsBound = signal(false); export const state = computed(() => ({ safeAreaInset: safeAreaInset(), contentSafeAreaInset: contentSafeAreaInset(), -})); \ No newline at end of file +})); + +export const safeAreaInsetTop = computed(() => safeAreaInset()['top']); +export const safeAreaInsetBottom = computed(() => safeAreaInset()['bottom']); +export const safeAreaInsetLeft = computed(() => safeAreaInset()['left']); +export const safeAreaInsetRight = computed(() => safeAreaInset()['right']); + +export const contentSafeAreaInsetTop = computed(() => contentSafeAreaInset()['top']); +export const contentSafeAreaInsetBottom = computed(() => contentSafeAreaInset()['bottom']); +export const contentSafeAreaInsetLeft = computed(() => contentSafeAreaInset()['left']); +export const contentSafeAreaInsetRight = computed(() => contentSafeAreaInset()['right']); From 40b53d82707f7baf4d8398bc0aae24cadee49dbe Mon Sep 17 00:00:00 2001 From: Maksim Sasnouski Date: Wed, 20 Nov 2024 11:38:31 +0300 Subject: [PATCH 03/34] V8: SafeArea: subscribe to events --- .../scopes/components/safe-area/exports.ts | 20 ++- .../scopes/components/safe-area/methods.ts | 129 ++++++------------ 2 files changed, 51 insertions(+), 98 deletions(-) diff --git a/packages/sdk/src/scopes/components/safe-area/exports.ts b/packages/sdk/src/scopes/components/safe-area/exports.ts index b58d73a09..6e76e1867 100644 --- a/packages/sdk/src/scopes/components/safe-area/exports.ts +++ b/packages/sdk/src/scopes/components/safe-area/exports.ts @@ -1,23 +1,21 @@ export { bindCssVars as bindSafeAreaCssVars, - close as closeSafeArea, isSupported as isSafeAreaSupported, mount as mountSafeArea, - ready as safeAreaReady, - setHeaderColor as setSafeAreaHeaderColor, - setBackgroundColor as setSafeAreaBackgroundColor, - setBottomBarColor as setSafeAreaBottomBarColor, unmount as unmountSafeArea, } from './methods.js'; export { - backgroundColor as safeAreaBackgroundColor, - bottomBarColor as safeAreaBottomBarColor, - bottomBarColorRGB as safeAreaBottomBarColorRGB, - headerColor as safeAreaHeaderColor, - headerColorRGB as safeAreaHeaderColorRGB, + safeAreaInsetTop as safeAreaInsetTop, + safeAreaInsetBottom as safeAreaInsetBottom, + safeAreaInsetLeft as safeAreaInsetLeft, + safeAreaInsetRight as safeAreaInsetRight, + contentSafeAreaInsetTop as contentSafeAreaInsetTop, + contentSafeAreaInsetBottom as contentSafeAreaInsetBottom, + contentSafeAreaInsetLeft as contentSafeAreaInsetLeft, + contentSafeAreaInsetRight as contentSafeAreaInsetRight, + isMounted as isSafeAreaMounted, isCssVarsBound as isSafeAreaCssVarsBound, - isDark as isSafeAreaDark, state as safeAreaState, } from './signals.js'; export type { diff --git a/packages/sdk/src/scopes/components/safe-area/methods.ts b/packages/sdk/src/scopes/components/safe-area/methods.ts index 25ff912c8..a93c7ffcf 100644 --- a/packages/sdk/src/scopes/components/safe-area/methods.ts +++ b/packages/sdk/src/scopes/components/safe-area/methods.ts @@ -13,7 +13,7 @@ import { type MethodName, } from '@telegram-apps/bridge'; import {isPageReload} from '@telegram-apps/navigation'; -import {computed, type Computed} from '@telegram-apps/signals'; +import {computed, type Signal} from '@telegram-apps/signals'; import {$version, postEvent} from '@/scopes/globals.js'; import {mount as tpMount} from '@/scopes/components/theme-params/methods.js'; @@ -28,10 +28,10 @@ import { safeAreaInset, contentSafeAreaInset, } from './signals.js'; -import {GetCSSVarNameFn, State} from './types.js'; +import {GetCSSVarNameFn} from './types.js'; import {SafeAreaInset} from "@telegram-apps/bridge"; -type StorageValue = State; +type StorageValue = SafeAreaInset; const REQUEST_METHOD = 'web_app_request_safe_area'; const REQUEST_CONTENT_METHOD = 'web_app_request_content_safe_area'; @@ -146,103 +146,58 @@ export const mount = wrapSupported( (): void => { if (!isMounted()) { const s = isPageReload() && getStorageValue(COMPONENT_NAME); - tpMount(); - - setBackgroundColor.ifAvailable(s ? s.backgroundColor : 'bg_color'); - setBottomBarColor.ifAvailable(s ? s.bottomBarColor : 'bottom_bar_bg_color'); - setHeaderColor.ifAvailable(s ? s.headerColor : 'bg_color'); - isMounted.set(true); } }, ); -function saveState() { - setStorageValue(COMPONENT_NAME, state()); -} +const onSafeAreaChanged: EventListener<'safe_area_changed'> = (data) => { + setState( + 'safeAreaInset', + safeAreaInset, + { + top: data.safeAreaInset.top, + bottom: data.safeAreaInset.bottom, + left: data.safeAreaInset.left, + right: data.safeAreaInset.right, + }); +}; -/** - * Updates the background color. - * @since Mini Apps v6.1 - * @throws {TypedError} ERR_UNKNOWN_ENV - * @throws {TypedError} ERR_NOT_INITIALIZED - * @throws {TypedError} ERR_NOT_SUPPORTED - * @throws {TypedError} ERR_NOT_MOUNTED - * @example - * if (setBackgroundColor.isAvailable()) { - * setBackgroundColor('bg_color'); - * } - */ -export const setBackgroundColor = wrapComplete( - 'setBackgroundColor', - (color: BackgroundColor): void => { - if (color !== backgroundColor()) { - postEvent(SET_BG_COLOR_METHOD, {color}); - backgroundColor.set(color); - saveState(); - } - }, - SET_BG_COLOR_METHOD, -); +const onContentSafeAreaChanged: EventListener<'content_safe_area_changed'> = (data) => { + setState( + 'contentSafeAreaInset', + contentSafeAreaInset, + { + top: data.contentSafeAreaInset.top, + bottom: data.contentSafeAreaInset.bottom, + left: data.contentSafeAreaInset.left, + right: data.contentSafeAreaInset.right, + }); +}; -/** - * Updates the bottom bar background color. - * @since Mini Apps v7.10 - * @throws {TypedError} ERR_UNKNOWN_ENV - * @throws {TypedError} ERR_NOT_INITIALIZED - * @throws {TypedError} ERR_NOT_SUPPORTED - * @throws {TypedError} ERR_NOT_MOUNTED - * @example - * if (setBottomBarColor.isAvailable()) { - * setBottomBarColor('ff11a3'); - * } - */ -export const setBottomBarColor = wrapComplete( - 'setBottomBarColor', - (color: BottomBarColor) => { - if (color !== bottomBarColor()) { - postEvent(SET_BOTTOM_BAR_COLOR_METHOD, {color}); - bottomBarColor.set(color); - saveState(); - } - }, - SET_BOTTOM_BAR_COLOR_METHOD, -); +function setState(fnName: string, fn: Signal, s: SafeAreaInset) { + fn.set({ + top: truncate(s.top), + bottom: truncate(s.bottom), + left: truncate(s.left), + right: truncate(s.right), + }); + setStorageValue(fnName, fn()); +} /** - * Updates the header color. - * @since Mini Apps v6.1 - * @throws {TypedError} ERR_UNKNOWN_ENV - * @throws {TypedError} ERR_NOT_INITIALIZED - * @throws {TypedError} ERR_NOT_SUPPORTED - * @throws {TypedError} ERR_NOT_MOUNTED - * @example Using known color key - * if (setHeaderColor.isAvailable()) { - * setHeaderColor('bg_color'); - * } - * @example Using RGB - * if (setHeaderColor.isAvailable() && setHeaderColor.supports.rgb()) { - * setHeaderColor('#ffaabb'); - * } + * Formats value to make it stay in bounds [0, +Inf). + * @param value - value to format. */ -export const setHeaderColor = wrapComplete( - 'setHeaderColor', - (color: HeaderColor): void => { - if (color !== headerColor()) { - postEvent(SET_HEADER_COLOR_METHOD, isRGB(color) ? {color} : {color_key: color}); - headerColor.set(color); - saveState(); - } - }, - SET_HEADER_COLOR_METHOD, - { - rgb: [SET_HEADER_COLOR_METHOD, 'color', isRGB], - }, -); +function truncate(value: number): number { + return Math.max(value, 0); +} /** - * Unmounts the component, removing the listener, saving the component state in the local storage. + * Unmounts the component, removing the listeners, saving the component state in the local storage. */ export function unmount(): void { + off('safe_area_changed', onSafeAreaChanged); + off('content_safe_area_changed', onContentSafeAreaChanged); isMounted.set(false); } From ccad41757cddcf43956938ec1a28c9ea3bf6706c Mon Sep 17 00:00:00 2001 From: Maksim Sasnouski Date: Wed, 20 Nov 2024 17:42:00 +0300 Subject: [PATCH 04/34] V8: SafeArea: states --- .../components/safe-area/methods.test.ts | 3 +- .../scopes/components/safe-area/methods.ts | 83 ++++++++++++------- .../scopes/components/safe-area/signals.ts | 2 +- 3 files changed, 55 insertions(+), 33 deletions(-) diff --git a/packages/sdk/src/scopes/components/safe-area/methods.test.ts b/packages/sdk/src/scopes/components/safe-area/methods.test.ts index 4aef1d67d..24cec2837 100644 --- a/packages/sdk/src/scopes/components/safe-area/methods.test.ts +++ b/packages/sdk/src/scopes/components/safe-area/methods.test.ts @@ -3,7 +3,7 @@ import { testSafety } from '@test-utils/predefined/testSafety.js'; import { resetPackageState } from '@test-utils/reset/reset.js'; import { mockPostEvent } from '@test-utils/mockPostEvent.js'; -import { mount, expand, bindCssVars } from './methods.js'; +import { mount, bindCssVars } from './methods.js'; import { isMounted } from './signals.js'; beforeEach(() => { @@ -14,7 +14,6 @@ beforeEach(() => { describe.each([ ['mount', mount, undefined], - ['expand', expand, undefined], ['bindCssVars', bindCssVars, isMounted], ] as const)('%s', (name, fn, isMounted) => { testSafety(fn, name, { diff --git a/packages/sdk/src/scopes/components/safe-area/methods.ts b/packages/sdk/src/scopes/components/safe-area/methods.ts index a93c7ffcf..3c1e4d355 100644 --- a/packages/sdk/src/scopes/components/safe-area/methods.ts +++ b/packages/sdk/src/scopes/components/safe-area/methods.ts @@ -3,7 +3,6 @@ import { on, retrieveLaunchParams, camelToKebab, - createCbCollector, getStorageValue, setStorageValue, deleteCssVar, @@ -15,8 +14,7 @@ import { import {isPageReload} from '@telegram-apps/navigation'; import {computed, type Signal} from '@telegram-apps/signals'; -import {$version, postEvent} from '@/scopes/globals.js'; -import {mount as tpMount} from '@/scopes/components/theme-params/methods.js'; +import {$version} from '@/scopes/globals.js'; import {throwCssVarsBound} from '@/scopes/toolkit/throwCssVarsBound.js'; import {createWrapComplete} from '@/scopes/toolkit/createWrapComplete.js'; import {createWrapSupported} from '@/scopes/toolkit/createWrapSupported.js'; @@ -26,10 +24,12 @@ import { state, isMounted, safeAreaInset, - contentSafeAreaInset, + contentSafeAreaInset, initialValue, } from './signals.js'; -import {GetCSSVarNameFn} from './types.js'; +import {GetCSSVarNameFn, State} from './types.js'; import {SafeAreaInset} from "@telegram-apps/bridge"; +import {createMountFn} from "@/scopes/createMountFn.js"; +import {isMounting, mountError} from "@/scopes/components/viewport/signals.js"; type StorageValue = SafeAreaInset; @@ -130,8 +130,6 @@ export const bindCssVars = wrapComplete( * This function restores the component state and is automatically saving it in the local storage * if it changed. * - * Internally, the function mounts the Theme Params component to work with correctly extracted - * theme palette values. * @since Mini Apps v8.0 * @throws {TypedError} ERR_UNKNOWN_ENV * @throws {TypedError} ERR_NOT_INITIALIZED @@ -143,38 +141,58 @@ export const bindCssVars = wrapComplete( */ export const mount = wrapSupported( 'mount', - (): void => { - if (!isMounted()) { + createMountFn( + COMPONENT_NAME, + (_) => { + if (isMounted()) return; + + // Try to restore the state using the storage. const s = isPageReload() && getStorageValue(COMPONENT_NAME); - isMounted.set(true); - } - }, + if (s) { + return s; + } + + // If the platform has a stable viewport, it means we could use the window global object + // properties. + if ([ + 'macos', + 'tdesktop', + 'unigram', + 'webk', + 'weba', + 'web', + ].includes(retrieveLaunchParams().platform)) { + return { + safeAreaInset: initialValue, + contentSafeAreaInset: initialValue + }; + } + }, + result => { + on('safe_area_changed', onSafeAreaChanged); + on('content_safe_area_changed', onContentSafeAreaChanged); + setGlobalState(result); + }, + {isMounted, isMounting, mountError}, + ), ); const onSafeAreaChanged: EventListener<'safe_area_changed'> = (data) => { - setState( - 'safeAreaInset', - safeAreaInset, - { - top: data.safeAreaInset.top, - bottom: data.safeAreaInset.bottom, - left: data.safeAreaInset.left, - right: data.safeAreaInset.right, - }); + setSafeAreaState(data.safeAreaInset); }; const onContentSafeAreaChanged: EventListener<'content_safe_area_changed'> = (data) => { - setState( - 'contentSafeAreaInset', - contentSafeAreaInset, - { - top: data.contentSafeAreaInset.top, - bottom: data.contentSafeAreaInset.bottom, - left: data.contentSafeAreaInset.left, - right: data.contentSafeAreaInset.right, - }); + setContentSafeAreaState(data.contentSafeAreaInset); }; +function setSafeAreaState(safeArea: SafeAreaInset) { + setState('safeAreaInset', safeAreaInset, safeArea); +} + +function setContentSafeAreaState(safeArea: SafeAreaInset) { + setState('contentSafeAreaInset', contentSafeAreaInset, safeArea); +} + function setState(fnName: string, fn: Signal, s: SafeAreaInset) { fn.set({ top: truncate(s.top), @@ -185,6 +203,11 @@ function setState(fnName: string, fn: Signal, s: SafeAreaInset) { setStorageValue(fnName, fn()); } +function setGlobalState(state: State) { + setSafeAreaState(state.safeAreaInset); + setSafeAreaState(state.contentSafeAreaInset); +} + /** * Formats value to make it stay in bounds [0, +Inf). * @param value - value to format. diff --git a/packages/sdk/src/scopes/components/safe-area/signals.ts b/packages/sdk/src/scopes/components/safe-area/signals.ts index a95b9cab0..d23968a20 100644 --- a/packages/sdk/src/scopes/components/safe-area/signals.ts +++ b/packages/sdk/src/scopes/components/safe-area/signals.ts @@ -3,7 +3,7 @@ import {computed, signal} from '@telegram-apps/signals'; import {SafeAreaInset} from "@telegram-apps/bridge"; import {State} from "@/scopes/components/safe-area/types.js"; -const initialValue: SafeAreaInset = { +export const initialValue: SafeAreaInset = { top: 0, bottom: 0, left: 0, From bdc9fdce762edeb895c448cf310e43feebb9667a Mon Sep 17 00:00:00 2001 From: Maksim Sasnouski Date: Wed, 20 Nov 2024 18:46:22 +0300 Subject: [PATCH 05/34] V8: SafeArea: mount and requests --- .../scopes/components/safe-area/methods.ts | 26 +++++++--- .../components/safe-area/requestSafeArea.ts | 52 +++++++++++++++++++ 2 files changed, 70 insertions(+), 8 deletions(-) create mode 100644 packages/sdk/src/scopes/components/safe-area/requestSafeArea.ts diff --git a/packages/sdk/src/scopes/components/safe-area/methods.ts b/packages/sdk/src/scopes/components/safe-area/methods.ts index 3c1e4d355..93243cfec 100644 --- a/packages/sdk/src/scopes/components/safe-area/methods.ts +++ b/packages/sdk/src/scopes/components/safe-area/methods.ts @@ -30,13 +30,12 @@ import {GetCSSVarNameFn, State} from './types.js'; import {SafeAreaInset} from "@telegram-apps/bridge"; import {createMountFn} from "@/scopes/createMountFn.js"; import {isMounting, mountError} from "@/scopes/components/viewport/signals.js"; +import {requestInsets} from "@/scopes/components/safe-area/requestSafeArea.js"; type StorageValue = SafeAreaInset; const REQUEST_METHOD = 'web_app_request_safe_area'; const REQUEST_CONTENT_METHOD = 'web_app_request_content_safe_area'; -const CHANGED_EVENT = 'safe_area_changed'; -const CONTENT_CHANGED_EVENT = 'content_safe_area_changed'; const COMPONENT_NAME = 'safeArea'; const isSupportedSchema = { @@ -143,13 +142,19 @@ export const mount = wrapSupported( 'mount', createMountFn( COMPONENT_NAME, - (_) => { - if (isMounted()) return; + options => { + if(isMounted()) return state(); // Try to restore the state using the storage. - const s = isPageReload() && getStorageValue(COMPONENT_NAME); - if (s) { - return s; + if (isPageReload()) { + const insets = getStorageValue('safeAreaInset'); + const contentInsets = getStorageValue('contentSafeAreaInset'); + if (insets && contentInsets) { + return { + safeAreaInset: insets, + contentSafeAreaInset: contentInsets + }; + } } // If the platform has a stable viewport, it means we could use the window global object @@ -167,6 +172,11 @@ export const mount = wrapSupported( contentSafeAreaInset: initialValue }; } + + // We were unable to retrieve data locally. In this case, we are sending + // a request returning the viewport information. + options.timeout ||= 1000; + return requestInsets(options); }, result => { on('safe_area_changed', onSafeAreaChanged); @@ -200,7 +210,7 @@ function setState(fnName: string, fn: Signal, s: SafeAreaInset) { left: truncate(s.left), right: truncate(s.right), }); - setStorageValue(fnName, fn()); + setStorageValue(fnName, fn()); } function setGlobalState(state: State) { diff --git a/packages/sdk/src/scopes/components/safe-area/requestSafeArea.ts b/packages/sdk/src/scopes/components/safe-area/requestSafeArea.ts new file mode 100644 index 000000000..38353336a --- /dev/null +++ b/packages/sdk/src/scopes/components/safe-area/requestSafeArea.ts @@ -0,0 +1,52 @@ +import { + ExecuteWithOptions, + CancelablePromise, + SafeAreaInset, +} from '@telegram-apps/bridge'; + +import {request as _request} from '@/scopes/globals.js'; +import {State} from "@/scopes/components/safe-area/types.js"; + +export function requestInsets( + options?: ExecuteWithOptions +): CancelablePromise { + // @ts-expect-error incorrect linting here + return CancelablePromise.all([ + requestSafeArea(options), + requestContentSafeArea(options) + ]).then(([safeAreaInset, contentSafeAreaInset]) => { + return new CancelablePromise((resolve) => { + resolve({safeAreaInset, contentSafeAreaInset}); + }); + }); +} + +/** + * Requests safe area actual information from the Telegram application. + * @param options - request options. + * @example + * const viewport = await request({ + * timeout: 1000 + * }); + */ +export function requestSafeArea( + options?: ExecuteWithOptions, +): CancelablePromise { + return _request('web_app_request_safe_area', 'safe_area_changed', options) + .then(r => r.safeAreaInset); +} + +/** + * Requests content safe area actual information from the Telegram application. + * @param options - request options. + * @example + * const viewport = await request({ + * timeout: 1000 + * }); + */ +export function requestContentSafeArea( + options?: ExecuteWithOptions, +): CancelablePromise { + return _request('web_app_request_content_safe_area', 'content_safe_area_changed', options) + .then(r => r.contentSafeAreaInset); +} \ No newline at end of file From 42c4d2ac3094fb7bb0a58302c33445c120dddb33 Mon Sep 17 00:00:00 2001 From: Maksim Sasnouski Date: Wed, 20 Nov 2024 19:23:12 +0300 Subject: [PATCH 06/34] V8: SafeArea: add export --- packages/sdk/src/index.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/sdk/src/index.ts b/packages/sdk/src/index.ts index fa7e8e82e..b95a3d712 100644 --- a/packages/sdk/src/index.ts +++ b/packages/sdk/src/index.ts @@ -12,6 +12,7 @@ export * from '@/scopes/components/main-button/exports.js'; export * from '@/scopes/components/mini-app/exports.js'; export * from '@/scopes/components/popup/exports.js'; export * from '@/scopes/components/qr-scanner/exports.js'; +export * from '@/scopes/components/safe-area/exports.js'; export * from '@/scopes/components/secondary-button/exports.js'; export * from '@/scopes/components/settings-button/exports.js'; export * from '@/scopes/components/swipe-behavior/exports.js'; From 3e42b28e0ce99ec1cb59e4e4a670533bf011ab05 Mon Sep 17 00:00:00 2001 From: Maksim Sasnouski Date: Wed, 20 Nov 2024 22:53:30 +0300 Subject: [PATCH 07/34] V8: SafeArea: better export names --- .../scopes/components/safe-area/exports.ts | 10 ++---- .../scopes/components/safe-area/methods.ts | 13 ++++---- .../scopes/components/safe-area/signals.ts | 31 ++++++++++--------- 3 files changed, 25 insertions(+), 29 deletions(-) diff --git a/packages/sdk/src/scopes/components/safe-area/exports.ts b/packages/sdk/src/scopes/components/safe-area/exports.ts index 6e76e1867..dd9cb03db 100644 --- a/packages/sdk/src/scopes/components/safe-area/exports.ts +++ b/packages/sdk/src/scopes/components/safe-area/exports.ts @@ -5,14 +5,8 @@ export { unmount as unmountSafeArea, } from './methods.js'; export { - safeAreaInsetTop as safeAreaInsetTop, - safeAreaInsetBottom as safeAreaInsetBottom, - safeAreaInsetLeft as safeAreaInsetLeft, - safeAreaInsetRight as safeAreaInsetRight, - contentSafeAreaInsetTop as contentSafeAreaInsetTop, - contentSafeAreaInsetBottom as contentSafeAreaInsetBottom, - contentSafeAreaInsetLeft as contentSafeAreaInsetLeft, - contentSafeAreaInsetRight as contentSafeAreaInsetRight, + inset as safeAreaInset, + contentInset as contentSafeAreaInset, isMounted as isSafeAreaMounted, isCssVarsBound as isSafeAreaCssVarsBound, diff --git a/packages/sdk/src/scopes/components/safe-area/methods.ts b/packages/sdk/src/scopes/components/safe-area/methods.ts index 93243cfec..598e662b0 100644 --- a/packages/sdk/src/scopes/components/safe-area/methods.ts +++ b/packages/sdk/src/scopes/components/safe-area/methods.ts @@ -20,11 +20,12 @@ import {createWrapComplete} from '@/scopes/toolkit/createWrapComplete.js'; import {createWrapSupported} from '@/scopes/toolkit/createWrapSupported.js'; import { + contentInset, isCssVarsBound, - state, + initialValue, + inset, isMounted, - safeAreaInset, - contentSafeAreaInset, initialValue, + state, } from './signals.js'; import {GetCSSVarNameFn, State} from './types.js'; import {SafeAreaInset} from "@telegram-apps/bridge"; @@ -99,7 +100,7 @@ export const bindCssVars = wrapComplete( getCSSVarName ||= (prop) => `--tg-${camelToKebab(component)}-${camelToKebab(prop)}`; function actualize(component: Component): void { - const fn = component === "safeArea" ? safeAreaInset : contentSafeAreaInset; + const fn = component === "safeArea" ? inset : contentInset; props.forEach(prop => { setCssVar(getCompCSSVarName(component)(prop), `${fn()[prop]}px`); }); @@ -196,11 +197,11 @@ const onContentSafeAreaChanged: EventListener<'content_safe_area_changed'> = (da }; function setSafeAreaState(safeArea: SafeAreaInset) { - setState('safeAreaInset', safeAreaInset, safeArea); + setState('safeAreaInset', inset, safeArea); } function setContentSafeAreaState(safeArea: SafeAreaInset) { - setState('contentSafeAreaInset', contentSafeAreaInset, safeArea); + setState('contentSafeAreaInset', contentInset, safeArea); } function setState(fnName: string, fn: Signal, s: SafeAreaInset) { diff --git a/packages/sdk/src/scopes/components/safe-area/signals.ts b/packages/sdk/src/scopes/components/safe-area/signals.ts index d23968a20..cc6bd4222 100644 --- a/packages/sdk/src/scopes/components/safe-area/signals.ts +++ b/packages/sdk/src/scopes/components/safe-area/signals.ts @@ -13,12 +13,12 @@ export const initialValue: SafeAreaInset = { /** * Signal with SafeAreaInset object state. */ -export const safeAreaInset = signal(initialValue); +export const inset = signal(initialValue); /** * Signal with ContentSafeAreaInset object state. */ -export const contentSafeAreaInset = signal(initialValue); +export const contentInset = signal(initialValue); /** * True if the component is currently mounted. @@ -30,20 +30,21 @@ export const isMounted = signal(false); */ export const isCssVarsBound = signal(false); +/** + * True if the component is currently mounting. + */ +export const isMounting = signal(false); + +/** + * Error occurred while mounting the component. + */ +export const mountError = signal(undefined); + + /** * Complete component state. */ export const state = computed(() => ({ - safeAreaInset: safeAreaInset(), - contentSafeAreaInset: contentSafeAreaInset(), -})); - -export const safeAreaInsetTop = computed(() => safeAreaInset()['top']); -export const safeAreaInsetBottom = computed(() => safeAreaInset()['bottom']); -export const safeAreaInsetLeft = computed(() => safeAreaInset()['left']); -export const safeAreaInsetRight = computed(() => safeAreaInset()['right']); - -export const contentSafeAreaInsetTop = computed(() => contentSafeAreaInset()['top']); -export const contentSafeAreaInsetBottom = computed(() => contentSafeAreaInset()['bottom']); -export const contentSafeAreaInsetLeft = computed(() => contentSafeAreaInset()['left']); -export const contentSafeAreaInsetRight = computed(() => contentSafeAreaInset()['right']); + safeAreaInset: inset(), + contentSafeAreaInset: contentInset(), +})); \ No newline at end of file From f92e5ab948792f7fe7f3bb5fa0d8a48f0d867a00 Mon Sep 17 00:00:00 2001 From: Maksim Sasnouski Date: Fri, 22 Nov 2024 16:39:10 +0300 Subject: [PATCH 08/34] V8: SafeArea: use correct event outputs --- packages/bridge/src/events/types/events.ts | 14 ++------------ .../src/scopes/components/safe-area/methods.ts | 16 ++++++++-------- .../components/safe-area/requestSafeArea.ts | 11 ++++++----- 3 files changed, 16 insertions(+), 25 deletions(-) diff --git a/packages/bridge/src/events/types/events.ts b/packages/bridge/src/events/types/events.ts index a9b8927d1..00307371e 100644 --- a/packages/bridge/src/events/types/events.ts +++ b/packages/bridge/src/events/types/events.ts @@ -256,24 +256,14 @@ export interface Events { * @since Mini Apps v8.0 * @see https://docs.telegram-mini-apps.com/platform/events#safe_area_changed * */ - safe_area_changed: { - /** - * Safe area inset values. - */ - safeAreaInset: SafeAreaInset; - }; + safe_area_changed: SafeAreaInset; /** * Occurs when the safe area for content changes * (e.g., due to orientation change or screen adjustments). * @since Mini Apps v8.0 * @see https://docs.telegram-mini-apps.com/platform/events#content_safe_area_changed * */ - content_safe_area_changed: { - /** - * Safe area content inset values. - */ - contentSafeAreaInset: SafeAreaInset; - }; + content_safe_area_changed: SafeAreaInset; /** * Occurs whenever theme settings are changed in the user's Telegram app * (including switching to night mode). diff --git a/packages/sdk/src/scopes/components/safe-area/methods.ts b/packages/sdk/src/scopes/components/safe-area/methods.ts index 598e662b0..c8400f96f 100644 --- a/packages/sdk/src/scopes/components/safe-area/methods.ts +++ b/packages/sdk/src/scopes/components/safe-area/methods.ts @@ -1,12 +1,12 @@ import { + camelToKebab, + deleteCssVar, + getStorageValue, off, on, retrieveLaunchParams, - camelToKebab, - getStorageValue, - setStorageValue, - deleteCssVar, setCssVar, + setStorageValue, supports, type EventListener, type MethodName, @@ -30,7 +30,7 @@ import { import {GetCSSVarNameFn, State} from './types.js'; import {SafeAreaInset} from "@telegram-apps/bridge"; import {createMountFn} from "@/scopes/createMountFn.js"; -import {isMounting, mountError} from "@/scopes/components/viewport/signals.js"; +import {isMounting, mountError} from "@/scopes/components/safe-area/signals.js"; import {requestInsets} from "@/scopes/components/safe-area/requestSafeArea.js"; type StorageValue = SafeAreaInset; @@ -144,7 +144,7 @@ export const mount = wrapSupported( createMountFn( COMPONENT_NAME, options => { - if(isMounted()) return state(); + if (isMounted()) return state(); // Try to restore the state using the storage. if (isPageReload()) { @@ -189,11 +189,11 @@ export const mount = wrapSupported( ); const onSafeAreaChanged: EventListener<'safe_area_changed'> = (data) => { - setSafeAreaState(data.safeAreaInset); + setSafeAreaState(data); }; const onContentSafeAreaChanged: EventListener<'content_safe_area_changed'> = (data) => { - setContentSafeAreaState(data.contentSafeAreaInset); + setContentSafeAreaState(data); }; function setSafeAreaState(safeArea: SafeAreaInset) { diff --git a/packages/sdk/src/scopes/components/safe-area/requestSafeArea.ts b/packages/sdk/src/scopes/components/safe-area/requestSafeArea.ts index 38353336a..c51ddd309 100644 --- a/packages/sdk/src/scopes/components/safe-area/requestSafeArea.ts +++ b/packages/sdk/src/scopes/components/safe-area/requestSafeArea.ts @@ -16,7 +16,10 @@ export function requestInsets( requestContentSafeArea(options) ]).then(([safeAreaInset, contentSafeAreaInset]) => { return new CancelablePromise((resolve) => { - resolve({safeAreaInset, contentSafeAreaInset}); + resolve({ + safeAreaInset: safeAreaInset, + contentSafeAreaInset: contentSafeAreaInset + }); }); }); } @@ -32,8 +35,7 @@ export function requestInsets( export function requestSafeArea( options?: ExecuteWithOptions, ): CancelablePromise { - return _request('web_app_request_safe_area', 'safe_area_changed', options) - .then(r => r.safeAreaInset); + return _request('web_app_request_safe_area', 'safe_area_changed', options); } /** @@ -47,6 +49,5 @@ export function requestSafeArea( export function requestContentSafeArea( options?: ExecuteWithOptions, ): CancelablePromise { - return _request('web_app_request_content_safe_area', 'content_safe_area_changed', options) - .then(r => r.contentSafeAreaInset); + return _request('web_app_request_content_safe_area', 'content_safe_area_changed', options); } \ No newline at end of file From 4a85d5a51c47e47372abe9fe058e8ff918a3cca8 Mon Sep 17 00:00:00 2001 From: Maksim Sasnouski Date: Fri, 22 Nov 2024 18:43:27 +0300 Subject: [PATCH 09/34] V8: SafeArea: better naming and storage --- .../scopes/components/safe-area/exports.ts | 4 ++- .../scopes/components/safe-area/methods.ts | 33 ++++++++++--------- .../components/safe-area/requestSafeArea.ts | 4 +-- .../scopes/components/safe-area/signals.ts | 4 +-- .../src/scopes/components/safe-area/types.ts | 4 +-- 5 files changed, 26 insertions(+), 23 deletions(-) diff --git a/packages/sdk/src/scopes/components/safe-area/exports.ts b/packages/sdk/src/scopes/components/safe-area/exports.ts index dd9cb03db..8cbd8c2ad 100644 --- a/packages/sdk/src/scopes/components/safe-area/exports.ts +++ b/packages/sdk/src/scopes/components/safe-area/exports.ts @@ -8,8 +8,10 @@ export { inset as safeAreaInset, contentInset as contentSafeAreaInset, - isMounted as isSafeAreaMounted, isCssVarsBound as isSafeAreaCssVarsBound, + isMounted as isSafeAreaMounted, + isMounting as isSafeAreaMounting, + mountError as safeAreaMountError, state as safeAreaState, } from './signals.js'; export type { diff --git a/packages/sdk/src/scopes/components/safe-area/methods.ts b/packages/sdk/src/scopes/components/safe-area/methods.ts index c8400f96f..2d84e9664 100644 --- a/packages/sdk/src/scopes/components/safe-area/methods.ts +++ b/packages/sdk/src/scopes/components/safe-area/methods.ts @@ -33,7 +33,7 @@ import {createMountFn} from "@/scopes/createMountFn.js"; import {isMounting, mountError} from "@/scopes/components/safe-area/signals.js"; import {requestInsets} from "@/scopes/components/safe-area/requestSafeArea.js"; -type StorageValue = SafeAreaInset; +type StorageValue = State; const REQUEST_METHOD = 'web_app_request_safe_area'; const REQUEST_CONTENT_METHOD = 'web_app_request_content_safe_area'; @@ -148,13 +148,9 @@ export const mount = wrapSupported( // Try to restore the state using the storage. if (isPageReload()) { - const insets = getStorageValue('safeAreaInset'); - const contentInsets = getStorageValue('contentSafeAreaInset'); - if (insets && contentInsets) { - return { - safeAreaInset: insets, - contentSafeAreaInset: contentInsets - }; + const storedState = getStorageValue(COMPONENT_NAME); + if (storedState) { + return storedState; } } @@ -169,8 +165,8 @@ export const mount = wrapSupported( 'web', ].includes(retrieveLaunchParams().platform)) { return { - safeAreaInset: initialValue, - contentSafeAreaInset: initialValue + inset: initialValue, + contentInset: initialValue }; } @@ -196,27 +192,32 @@ const onContentSafeAreaChanged: EventListener<'content_safe_area_changed'> = (da setContentSafeAreaState(data); }; +type methodName = 'inset' | 'contentInset'; + function setSafeAreaState(safeArea: SafeAreaInset) { - setState('safeAreaInset', inset, safeArea); + setState('inset', inset, safeArea); } function setContentSafeAreaState(safeArea: SafeAreaInset) { - setState('contentSafeAreaInset', contentInset, safeArea); + setState('contentInset', contentInset, safeArea); } -function setState(fnName: string, fn: Signal, s: SafeAreaInset) { +function setState(fnName: methodName, fn: Signal, s: SafeAreaInset) { fn.set({ top: truncate(s.top), bottom: truncate(s.bottom), left: truncate(s.left), right: truncate(s.right), }); - setStorageValue(fnName, fn()); + setStorageValue(COMPONENT_NAME, { + inset: fnName === 'inset' ? fn() : state().inset, + contentInset: fnName === 'contentInset' ? fn() : state().contentInset, + }); } function setGlobalState(state: State) { - setSafeAreaState(state.safeAreaInset); - setSafeAreaState(state.contentSafeAreaInset); + setSafeAreaState(state.inset); + setSafeAreaState(state.contentInset); } /** diff --git a/packages/sdk/src/scopes/components/safe-area/requestSafeArea.ts b/packages/sdk/src/scopes/components/safe-area/requestSafeArea.ts index c51ddd309..b52f5a0b9 100644 --- a/packages/sdk/src/scopes/components/safe-area/requestSafeArea.ts +++ b/packages/sdk/src/scopes/components/safe-area/requestSafeArea.ts @@ -17,8 +17,8 @@ export function requestInsets( ]).then(([safeAreaInset, contentSafeAreaInset]) => { return new CancelablePromise((resolve) => { resolve({ - safeAreaInset: safeAreaInset, - contentSafeAreaInset: contentSafeAreaInset + inset: safeAreaInset, + contentInset: contentSafeAreaInset }); }); }); diff --git a/packages/sdk/src/scopes/components/safe-area/signals.ts b/packages/sdk/src/scopes/components/safe-area/signals.ts index cc6bd4222..91f0e6b99 100644 --- a/packages/sdk/src/scopes/components/safe-area/signals.ts +++ b/packages/sdk/src/scopes/components/safe-area/signals.ts @@ -45,6 +45,6 @@ export const mountError = signal(undefined); * Complete component state. */ export const state = computed(() => ({ - safeAreaInset: inset(), - contentSafeAreaInset: contentInset(), + inset: inset(), + contentInset: contentInset(), })); \ No newline at end of file diff --git a/packages/sdk/src/scopes/components/safe-area/types.ts b/packages/sdk/src/scopes/components/safe-area/types.ts index bb82cc1b8..2aae66d9c 100644 --- a/packages/sdk/src/scopes/components/safe-area/types.ts +++ b/packages/sdk/src/scopes/components/safe-area/types.ts @@ -1,8 +1,8 @@ import { SafeAreaInset } from "@telegram-apps/bridge"; export interface State { - safeAreaInset: SafeAreaInset; - contentSafeAreaInset: SafeAreaInset; + inset: SafeAreaInset; + contentInset: SafeAreaInset; } export interface GetCSSVarNameFn { From 319330c4d3050237e5b13d3bf8afa879f27a7d1a Mon Sep 17 00:00:00 2001 From: Maksim Sasnouski Date: Sat, 23 Nov 2024 00:21:23 +0300 Subject: [PATCH 10/34] V8: SafeArea: add playground page --- playgrounds/react/src/init.ts | 7 ++- playgrounds/react/src/navigation/routes.tsx | 2 + .../react/src/pages/IndexPage/IndexPage.tsx | 3 ++ .../react/src/pages/SafeAreaParamsPage.tsx | 51 +++++++++++++++++++ 4 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 playgrounds/react/src/pages/SafeAreaParamsPage.tsx diff --git a/playgrounds/react/src/init.ts b/playgrounds/react/src/init.ts index ba1a93929..cd4329c1f 100644 --- a/playgrounds/react/src/init.ts +++ b/playgrounds/react/src/init.ts @@ -2,6 +2,7 @@ import { backButton, viewport, themeParams, + safeArea, miniApp, initData, $debug, @@ -24,7 +25,11 @@ export function init(debug: boolean): void { miniApp.mount(); themeParams.mount(); initData.restore(); - + + void safeArea.mount().catch((e: any) => { + console.error('Something went wrong mounting the safe area', e); + }); + void viewport.mount().then(() => { // Define components-related CSS variables. viewport.bindCssVars(); diff --git a/playgrounds/react/src/navigation/routes.tsx b/playgrounds/react/src/navigation/routes.tsx index 2bb13c924..cb1af34e8 100644 --- a/playgrounds/react/src/navigation/routes.tsx +++ b/playgrounds/react/src/navigation/routes.tsx @@ -5,6 +5,7 @@ import { InitDataPage } from '@/pages/InitDataPage.tsx'; import { LaunchParamsPage } from '@/pages/LaunchParamsPage.tsx'; import { ThemeParamsPage } from '@/pages/ThemeParamsPage.tsx'; import { TONConnectPage } from '@/pages/TONConnectPage/TONConnectPage'; +import { SafeAreaParamsPage } from "@/pages/SafeAreaParamsPage.tsx"; import { ViewportParamsPage } from "@/pages/ViewportParamsPage.tsx"; interface Route { @@ -20,6 +21,7 @@ export const routes: Route[] = [ { path: '/launch-params', Component: LaunchParamsPage, title: 'Launch Params' }, { path: '/theme-params', Component: ThemeParamsPage, title: 'Theme Params' }, { path: '/viewport-params', Component: ViewportParamsPage, title: 'Viewport Params' }, + { path: '/safe-area-params', Component: SafeAreaParamsPage, title: 'SafeArea Params' }, { path: '/ton-connect', Component: TONConnectPage, diff --git a/playgrounds/react/src/pages/IndexPage/IndexPage.tsx b/playgrounds/react/src/pages/IndexPage/IndexPage.tsx index 8f4b19626..2e49187d6 100644 --- a/playgrounds/react/src/pages/IndexPage/IndexPage.tsx +++ b/playgrounds/react/src/pages/IndexPage/IndexPage.tsx @@ -36,6 +36,9 @@ export const IndexPage: FC = () => { Theme Parameters + + Safe Area Parameters + Viewport Parameters diff --git a/playgrounds/react/src/pages/SafeAreaParamsPage.tsx b/playgrounds/react/src/pages/SafeAreaParamsPage.tsx new file mode 100644 index 000000000..17910cae4 --- /dev/null +++ b/playgrounds/react/src/pages/SafeAreaParamsPage.tsx @@ -0,0 +1,51 @@ +import { + safeAreaInset, + contentSafeAreaInset, + useSignal, +} from '@telegram-apps/sdk-react'; + +import {List} from '@telegram-apps/telegram-ui'; +import {FC, useEffect, useState} from 'react'; + +import {DisplayData, DisplayDataRow} from '@/components/DisplayData/DisplayData.tsx'; +import {Page} from '@/components/Page.tsx'; + +export const SafeAreaParamsPage: FC = () => { + const inset = useSignal(safeAreaInset); + const contentInset = useSignal(contentSafeAreaInset); + + const [safeAreaRows, setSafeAreaRows] = useState([]); + const [contentSafeAreaRows, setContentSafeAreaRows] = useState([]); + + const getRows = (fn: typeof inset): DisplayDataRow[] => { + return [ + {title: 'top', value: fn.top}, + {title: 'bottom', value: fn.bottom}, + {title: 'left', value: fn.left}, + {title: 'right', value: fn.right}, + ]; + } + + useEffect(() => { + setSafeAreaRows(getRows(inset)); + }, [inset]); + + useEffect(() => { + setContentSafeAreaRows(getRows(contentInset)); + }, [contentInset]); + + return ( + + + + + + + ); +}; From c09c8ef5095bfbbe7c809e49018c275bf734b2df Mon Sep 17 00:00:00 2001 From: Maksim Sasnouski Date: Sat, 23 Nov 2024 00:40:33 +0300 Subject: [PATCH 11/34] V8: import Eruda earlier --- playgrounds/react/src/init.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/playgrounds/react/src/init.ts b/playgrounds/react/src/init.ts index cd4329c1f..ecd283cb1 100644 --- a/playgrounds/react/src/init.ts +++ b/playgrounds/react/src/init.ts @@ -16,6 +16,11 @@ export function init(debug: boolean): void { // Set @telegram-apps/sdk-react debug mode. $debug.set(debug); + // Add Eruda if needed. + debug && import('eruda') + .then((lib) => lib.default.init()) + .catch(console.error); + // Initialize special event handlers for Telegram Desktop, Android, iOS, etc. Also, configure // the package. initSDK(); @@ -38,9 +43,4 @@ export function init(debug: boolean): void { }).catch((e: any) => { console.error('Something went wrong mounting the viewport', e); }); - - // Add Eruda if needed. - debug && import('eruda') - .then((lib) => lib.default.init()) - .catch(console.error); } \ No newline at end of file From d1f5b51397198706725466ca8191e4846b094be7 Mon Sep 17 00:00:00 2001 From: Maksim Sasnouski Date: Sat, 23 Nov 2024 01:23:35 +0300 Subject: [PATCH 12/34] V8: Safe Area: fix store restoration --- packages/sdk/src/scopes/components/safe-area/methods.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sdk/src/scopes/components/safe-area/methods.ts b/packages/sdk/src/scopes/components/safe-area/methods.ts index 2d84e9664..226e6ec9e 100644 --- a/packages/sdk/src/scopes/components/safe-area/methods.ts +++ b/packages/sdk/src/scopes/components/safe-area/methods.ts @@ -217,7 +217,7 @@ function setState(fnName: methodName, fn: Signal, s: SafeAreaInse function setGlobalState(state: State) { setSafeAreaState(state.inset); - setSafeAreaState(state.contentInset); + setContentSafeAreaState(state.contentInset); } /** From 427ef66316bde83e9894c67cf274e8a94dee5615 Mon Sep 17 00:00:00 2001 From: Maksim Sasnouski Date: Sat, 23 Nov 2024 01:29:41 +0300 Subject: [PATCH 13/34] V8: Safe Area: get use of safe area --- playgrounds/react/src/components/Page.tsx | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/playgrounds/react/src/components/Page.tsx b/playgrounds/react/src/components/Page.tsx index 775f687b9..d149da3a5 100644 --- a/playgrounds/react/src/components/Page.tsx +++ b/playgrounds/react/src/components/Page.tsx @@ -1,8 +1,8 @@ import { useNavigate } from 'react-router-dom'; -import { backButton } from '@telegram-apps/sdk-react'; +import { backButton, safeArea, useSignal } from '@telegram-apps/sdk-react'; import { PropsWithChildren, useEffect } from 'react'; -export function Page({ children, back = true }: PropsWithChildren<{ +export function Page({children, back = true}: PropsWithChildren<{ /** * True if it is allowed to go back from this page. */ @@ -10,6 +10,9 @@ export function Page({ children, back = true }: PropsWithChildren<{ }>) { const navigate = useNavigate(); + const inset = useSignal(safeArea.inset); + const contentInset = useSignal(safeArea.contentInset); + useEffect(() => { if (back) { backButton.show(); @@ -20,5 +23,11 @@ export function Page({ children, back = true }: PropsWithChildren<{ backButton.hide(); }, [back]); - return <>{children}; + return
+ {children} +
; } \ No newline at end of file From f6ce2387afd2669f7356d14daf33cb0ae2f5314f Mon Sep 17 00:00:00 2001 From: Maksim Sasnouski Date: Sat, 23 Nov 2024 02:43:16 +0300 Subject: [PATCH 14/34] V8: Safe Area: add docs --- apps/docs/.vitepress/packages.ts | 1 + .../2-x/components/safe-area.md | 218 ++++++++++++++++++ apps/docs/platform/events.md | 33 ++- apps/docs/platform/methods.md | 14 ++ apps/docs/platform/safe-area.md | 20 ++ .../components/safe-area/content-inset.jpg | Bin 0 -> 194088 bytes .../public/components/safe-area/inset.jpg | Bin 0 -> 189723 bytes 7 files changed, 283 insertions(+), 3 deletions(-) create mode 100644 apps/docs/packages/telegram-apps-sdk/2-x/components/safe-area.md create mode 100644 apps/docs/platform/safe-area.md create mode 100644 apps/docs/public/components/safe-area/content-inset.jpg create mode 100644 apps/docs/public/components/safe-area/inset.jpg diff --git a/apps/docs/.vitepress/packages.ts b/apps/docs/.vitepress/packages.ts index 2aa1ca12b..0e3cc27af 100644 --- a/apps/docs/.vitepress/packages.ts +++ b/apps/docs/.vitepress/packages.ts @@ -101,6 +101,7 @@ export const packagesLinksGenerator = (prefix: string = '') => { scope('mini-app'), scope('popup'), scope('qr-scanner', 'QR Scanner'), + scope('safe-area'), scope('secondary-button'), scope('settings-button'), scope('swipe-behavior'), diff --git a/apps/docs/packages/telegram-apps-sdk/2-x/components/safe-area.md b/apps/docs/packages/telegram-apps-sdk/2-x/components/safe-area.md new file mode 100644 index 000000000..319dadc88 --- /dev/null +++ b/apps/docs/packages/telegram-apps-sdk/2-x/components/safe-area.md @@ -0,0 +1,218 @@ +# Safe Area + +The 💠[component](../scopes.md) responsible for the Telegram Mini +Apps [safe area](../../../../platform/safe-area.md). + +## Mounting + +Before using the component, it is necessary to mount it to work with properly configured properties. +To do so, use the `mount` method. It will update the `isMounted` signal property. + +::: code-group + +```ts [Variable] +import { safeArea } from '@telegram-apps/sdk'; + +if (safeArea.mount.isAvailable()) { + safeArea.mount(); + safeArea.isMounted(); // true +} +``` + +```ts [Functions] +import { + mountSafeArea, + isSafeAreaMounted, +} from '@telegram-apps/sdk'; + +if (mountSafeArea.isAvailable()) { + mountSafeArea(); + isSafeAreaMounted(); // true +} +``` + +::: + +To unmount, use the `unmount` method: + +::: code-group + +```ts [Variable] +safeArea.unmount(); +safeArea.isMounted(); // false +``` + +```ts [Functions] +import { + unmountSafeArea, + isSafeAreaMounted, +} from '@telegram-apps/sdk'; + +unmountSafeArea(); +isSafeAreaMounted(); // false +``` + +::: + +## Binding CSS Variables + +To expose the `safeArea` properties via CSS variables, use the `bindCssVars` method. +The `isCssVarsBound` signal property is updated after the method is called. + +This method optionally accepts a function that transforms the values `top`, `bottom`, `left` +and `right` into CSS variable names. By default, values are converted to kebab case with the +prefix `--tg-safe-area-` and `--tg-content-safe-area`. + +::: code-group + +```ts [Variable] +import { safeArea } from '@telegram-apps/sdk'; + +if (safeArea.bindCssVars.isAvailable()) { + safeArea.bindCssVars(); + // Creates CSS variables like: + // --tg-safe-area-inset-top: 0px; + // --tg-safe-area-inset-bottom: 30px; + // --tg-safe-area-inset-left: 40px; + // --tg-safe-area-inset-right: 40px; + + // --tg-content-safe-area-inset-top: 40px; + // --tg-content-safe-area-inset-bottom: 0px; + // --tg-content-safe-area-inset-left: 0px; + // --tg-content-safe-area-inset-right: 0px; + + safeArea.bindCssVars(key => `--my-prefix-${key}`); + // Creates CSS variables like: + + // --my-prefix-safe-area-inset-top: 0px; + // --my-prefix-content-safe-area-inset-top: 40px; + // ...and so on + + safeArea.isCssVarsBound(); // true +} +``` + +```ts [Functions] +import { + bindSafeAreaCssVars, + isSafeAreaCssVarsBound, +} from '@telegram-apps/sdk'; + +if (bindSafeAreaCssVars.isAvailable()) { + bindSafeAreaCssVars(); + // Creates CSS variables like: + // --tg-safe-area-inset-top: 0px; + // --tg-safe-area-inset-bottom: 30px; + // --tg-safe-area-inset-left: 40px; + // --tg-safe-area-inset-right: 40px; + + // --tg-content-safe-area-inset-top: 40px; + // --tg-content-safe-area-inset-bottom: 0px; + // --tg-content-safe-area-inset-left: 0px; + // --tg-content-safe-area-inset-right: 0px; + + bindSafeAreaCssVars(key => `--my-prefix-${key}`); + // Creates CSS variables like: + // --my-prefix-safe-area-inset-top: 0px; + // --my-prefix-content-safe-area-inset-top: 40px; + // ...and so on + + isSafeAreaCssVarsBound(); // true +} +``` + +::: + +## Types + +### SafeAreaInset + +Type representing `safe area` and `content safe area` paddings: + +```ts [Variable] +type SafeAreaInset = { + top: number, + bottom: number, + left: number, + right: number +}; +``` + +### State + +Type representing `full state` of `safe area`: + +```ts [Variable] +type State = { + inset: SafeAreaInset, + contentSafeArea: SafeAreaInset +}; +``` + +## Signals + +This section provides a complete list of signals related to the init data. + +## `inset` + +Return type: `SafeAreaInset` + +To get safeArea state, use the `inset` method. + +::: code-group + +```ts [Variable] +safeArea.inset(); // { top: 0, bottom: 30, left: 40, right: 40 } +``` + +```ts [Functions] +import { safeAreaInset } from '@telegram-apps/sdk'; + +safeAreaInset(); // { top: 0, bottom: 30, left: 40, right: 40 } +``` + +::: + +## `contentInset` + +To get contentSafeArea state, use the `contentInset` method. + +::: code-group + +```ts [Variable] +safeArea.contentInset(); // { top: 40, bottom: 0, left: 0, right: 0 } +``` + +```ts [Functions] +import { contentSafeAreaInset } from '@telegram-apps/sdk'; + +contentSafeAreaInset(); // { top: 40, bottom: 0, left: 0, right: 0 } +``` + +::: + +## `state` + +To get full safe area state, use the `state` method. + +::: code-group + +```ts [Variable] +safeArea.state(); +// { +// inset: { top: 0, bottom: 30, left: 40, right: 40 } +// contentInset: { top: 40, bottom: 0, left: 0, right: 0 } +// } +``` + +```ts [Functions] +import { safeAreaState } from '@telegram-apps/sdk'; + +safeAreaState(); +// { +// inset: { top: 0, bottom: 30, left: 40, right: 40 } +// contentInset: { top: 40, bottom: 0, left: 0, right: 0 } +// } +``` + +::: \ No newline at end of file diff --git a/apps/docs/platform/events.md b/apps/docs/platform/events.md index 5b6a687f7..db7c8be78 100644 --- a/apps/docs/platform/events.md +++ b/apps/docs/platform/events.md @@ -31,8 +31,8 @@ interface MessageJSON { Then, lets imagine how we could process an event from Telegram application: ```typescript -window.addEventListener('message', ({ data }) => { - const { eventType, eventData } = JSON.parse(data); +window.addEventListener('message', ({data}) => { + const {eventType, eventData} = JSON.parse(data); console.log(eventType, eventData); }); ``` @@ -84,7 +84,7 @@ package, which greatly eases integration. Here's how to use it: ```ts -import { on } from '@telegram-apps/sdk'; +import {on} from '@telegram-apps/sdk'; // Start listening to "viewport_changed" event. Returned value // is a function, which removes this event listener. @@ -343,6 +343,33 @@ including switching to night mode). |--------------|--------------------------|--------------------------------------------------------------------------------------------------------| | theme_params | `Record` | Map where the key is a theme stylesheet key and value is the corresponding color in `#RRGGBB` format. | +### `safe_area_changed` + +Occurs whenever [the safe area](safe_area.md) was changed in the user's Telegram app. +For example, user switched to landscape mode. +Safe area helps to avoid overlap with system UI elements like notches or navigation bars. + +| Field | Type | Description | +|--------|----------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------| +| top | `number` | The top inset in pixels, representing the space to avoid at the top of the screen. Also available as the CSS variable var(--tg-safe-area-inset-top). | +| bottom | `number` | The bottom inset in pixels, representing the space to avoid at the bottom of the screen. Also available as the CSS variable var(--tg-safe-area-inset-bottom). | +| left | `number` | The left inset in pixels, representing the space to avoid on the left side of the screen. Also available as the CSS variable var(--tg-safe-area-inset-left). | +| right | `number` | The right inset in pixels, representing the space to avoid on the right side of the screen. Also available as the CSS variable var(--tg-safe-area-inset-right). | + +### `content_safe_area_changed` + +Occurs whenever [the content safe area](safe_area.md) was changed in the user's Telegram app. +For example, user switched to landscape mode. +Safe area helps to avoid overlap with avoiding overlap with Telegram UI elements. +Content Safe Area is inside Device Safe Area and only covers Telegram UI. + +| Field | Type | Description | +|--------|----------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| top | `number` | The top inset in pixels, representing the space to avoid at the top of the content area. Also available as the CSS variable var(--tg-content-safe-area-inset-top). | +| bottom | `number` | The bottom inset in pixels, representing the space to avoid at the bottom of the content area. Also available as the CSS variable var(--tg-content-safe-area-inset-bottom). | +| left | `number` | The left inset in pixels, representing the space to avoid on the left side of the content area. Also available as the CSS variable var(--tg-content-safe-area-inset-left). | +| right | `number` | The right inset in pixels, representing the space to avoid on the right side of the content area. Also available as the CSS variable var(--tg-content-safe-area-inset-right). | + ### `viewport_changed` Occurs whenever the [viewport](viewport.md) has been changed. For example, when the diff --git a/apps/docs/platform/methods.md b/apps/docs/platform/methods.md index 3fb154505..10231b919 100644 --- a/apps/docs/platform/methods.md +++ b/apps/docs/platform/methods.md @@ -401,6 +401,20 @@ Requests access to current user's phone. Requests current [theme](theming.md) from Telegram. As a result, Telegram will create [theme_changed](events.md#theme-changed) event. +### `web_app_request_safe_area` + +Available since: **v8.0** + +Requests current [safe area](safe-area.md) information from Telegram. As a result, +Telegram will create [safe_area_changed](events.md#safe-area-changed) event. + +### `web_app_request_content_safe_area` + +Available since: **v8.0** + +Requests current [content safe area](content-safe-area.md) information from Telegram. As a result, +Telegram will create [content_safe_area_changed](events.md#content-safe-area-changed) event. + ### `web_app_request_viewport` Requests current [viewport](viewport.md) information from Telegram. As a result, diff --git a/apps/docs/platform/safe-area.md b/apps/docs/platform/safe-area.md new file mode 100644 index 000000000..f9a2a587b --- /dev/null +++ b/apps/docs/platform/safe-area.md @@ -0,0 +1,20 @@ +# Safe Area + +The **safe area** ensures your app's content on mobile screens is fully visible and usable +by preventing it from being obscured by device features like notches or bottom dock (navigation bars) and Telegram UI features like buttons in [full screen mode](full-screen.md). + +In TMA there are 2 different Safe Area objects: +- Safe Area Inset +- Content Safe Area Inset + +## Safe Area Inset + +This Safe Area represents paddings from **Device UI** like notches, bottom dock (navigation bars) and other possible **System UI** elements. + +![Safe Area Inset](/components/safe-area/inset.jpg) + +## Content Safe Area Inset + +This Safe Area represents paddings from **Telegram UI** like buttons in [full screen mode](full-screen.md). + +![Content Safe Area Inset](/components/safe-area/content-inset.jpg) \ No newline at end of file diff --git a/apps/docs/public/components/safe-area/content-inset.jpg b/apps/docs/public/components/safe-area/content-inset.jpg new file mode 100644 index 0000000000000000000000000000000000000000..776e972813b4a1b063c0ad149b2a4f719b8d50c1 GIT binary patch literal 194088 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 W2LOW3u0Hm9nlG!?0PG`cum1y`R`Qhq literal 0 HcmV?d00001 diff --git a/apps/docs/public/components/safe-area/inset.jpg b/apps/docs/public/components/safe-area/inset.jpg new file mode 100644 index 0000000000000000000000000000000000000000..62a430e0491fb34b64266dace9296e17d288db0b GIT binary patch literal 189723 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

ejtP?n0|`TQq#iz65uAp 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 Q&dc2~pBzDF`2W8N01xU3wEzGB literal 0 HcmV?d00001 From 63f382f47e9cfbd8bb44c339a6e42ce2bcbef0c7 Mon Sep 17 00:00:00 2001 From: Maksim Sasnouski Date: Sat, 23 Nov 2024 03:50:51 +0300 Subject: [PATCH 15/34] V8: Safe Area: correct CSS bindings --- .../2-x/components/safe-area.md | 27 +++++++++++++------ .../components/safe-area/methods.test.ts | 1 + .../scopes/components/safe-area/methods.ts | 16 +++++------ .../src/scopes/components/safe-area/types.ts | 7 +++-- playgrounds/react/src/init.ts | 4 ++- 5 files changed, 36 insertions(+), 19 deletions(-) diff --git a/apps/docs/packages/telegram-apps-sdk/2-x/components/safe-area.md b/apps/docs/packages/telegram-apps-sdk/2-x/components/safe-area.md index 319dadc88..22bdb4afd 100644 --- a/apps/docs/packages/telegram-apps-sdk/2-x/components/safe-area.md +++ b/apps/docs/packages/telegram-apps-sdk/2-x/components/safe-area.md @@ -81,12 +81,17 @@ if (safeArea.bindCssVars.isAvailable()) { // --tg-content-safe-area-inset-left: 0px; // --tg-content-safe-area-inset-right: 0px; - safeArea.bindCssVars(key => `--my-prefix-${key}`); + safeArea.bindCssVars((component, property) => `--my-prefix-${component}-${property}`); // Creates CSS variables like: + // --my-prefix-safeArea-top: 0px; + // --my-prefix-safeArea-bottom: 30px; + // --my-prefix-safeArea-bottom: 40px; + // --my-prefix-safeArea-right: 40px; - // --my-prefix-safe-area-inset-top: 0px; - // --my-prefix-content-safe-area-inset-top: 40px; - // ...and so on + // --my-prefix-contentSafeArea-top: 40px; + // --my-prefix-contentSafeArea-bottom: 0px; + // --my-prefix-contentSafeArea-left: 0px; + // --my-prefix-contentSafeArea-right: 0px; safeArea.isCssVarsBound(); // true } @@ -111,11 +116,17 @@ if (bindSafeAreaCssVars.isAvailable()) { // --tg-content-safe-area-inset-left: 0px; // --tg-content-safe-area-inset-right: 0px; - bindSafeAreaCssVars(key => `--my-prefix-${key}`); + bindSafeAreaCssVars((component, property) => `--my-prefix-${component}-${property}`); // Creates CSS variables like: - // --my-prefix-safe-area-inset-top: 0px; - // --my-prefix-content-safe-area-inset-top: 40px; - // ...and so on + // --my-prefix-safeArea-top: 0px; + // --my-prefix-safeArea-bottom: 30px; + // --my-prefix-safeArea-bottom: 40px; + // --my-prefix-safeArea-right: 40px; + + // --my-prefix-contentSafeArea-top: 40px; + // --my-prefix-contentSafeArea-bottom: 0px; + // --my-prefix-contentSafeArea-left: 0px; + // --my-prefix-contentSafeArea-right: 0px; isSafeAreaCssVarsBound(); // true } diff --git a/packages/sdk/src/scopes/components/safe-area/methods.test.ts b/packages/sdk/src/scopes/components/safe-area/methods.test.ts index 24cec2837..54566d688 100644 --- a/packages/sdk/src/scopes/components/safe-area/methods.test.ts +++ b/packages/sdk/src/scopes/components/safe-area/methods.test.ts @@ -18,6 +18,7 @@ describe.each([ ] as const)('%s', (name, fn, isMounted) => { testSafety(fn, name, { component: 'safeArea', + minVersion: '8.0', isMounted, }); }); diff --git a/packages/sdk/src/scopes/components/safe-area/methods.ts b/packages/sdk/src/scopes/components/safe-area/methods.ts index 226e6ec9e..c1766fb95 100644 --- a/packages/sdk/src/scopes/components/safe-area/methods.ts +++ b/packages/sdk/src/scopes/components/safe-area/methods.ts @@ -85,7 +85,7 @@ const wrapComplete = createWrapComplete(COMPONENT_NAME, isMounted, isSupportedSc * } * @example Using custom CSS vars generator * if (bindCssVars.isAvailable()) { - * bindCssVars(key => `--my-prefix-${key}`); + * bindCssVars((component, property) => `--my-prefix-${component}-${property}`); * } */ export const bindCssVars = wrapComplete( @@ -96,13 +96,12 @@ export const bindCssVars = wrapComplete( type Component = "safeArea" | "contentSafeArea"; const props = ['top', 'bottom', 'left', 'right'] as const; - const getCompCSSVarName = (component: Component) => - getCSSVarName ||= (prop) => `--tg-${camelToKebab(component)}-${camelToKebab(prop)}`; + getCSSVarName ||= (component, prop) => `--tg-${camelToKebab(component)}-${camelToKebab(prop)}`; function actualize(component: Component): void { const fn = component === "safeArea" ? inset : contentInset; props.forEach(prop => { - setCssVar(getCompCSSVarName(component)(prop), `${fn()[prop]}px`); + setCssVar(getCSSVarName!(component, prop), `${fn()[prop]}px`); }); } @@ -111,14 +110,14 @@ export const bindCssVars = wrapComplete( actualizeSA(); actualizeCSA(); - state.sub(actualizeSA); - state.sub(actualizeCSA); + inset.sub(actualizeSA); + contentInset.sub(actualizeCSA); isCssVarsBound.set(true); return () => { props.forEach(deleteCssVar); - state.unsub(actualizeSA); - state.unsub(actualizeCSA); + inset.unsub(actualizeSA); + contentInset.unsub(actualizeCSA); isCssVarsBound.set(false); }; }, @@ -147,6 +146,7 @@ export const mount = wrapSupported( if (isMounted()) return state(); // Try to restore the state using the storage. + // TODO: do not restore if orientation changed if (isPageReload()) { const storedState = getStorageValue(COMPONENT_NAME); if (storedState) { diff --git a/packages/sdk/src/scopes/components/safe-area/types.ts b/packages/sdk/src/scopes/components/safe-area/types.ts index 2aae66d9c..e6c0e4352 100644 --- a/packages/sdk/src/scopes/components/safe-area/types.ts +++ b/packages/sdk/src/scopes/components/safe-area/types.ts @@ -5,10 +5,13 @@ export interface State { contentInset: SafeAreaInset; } +type Component = "safeArea" | "contentSafeArea"; + export interface GetCSSVarNameFn { /** - * @param property - safe area insets + * @param component - safe area or content safe area component + * @param property - safe area insets property * @returns Computed complete CSS variable name. */ - (property: Extract): string; + (component: Component, property: Extract): string; } \ No newline at end of file diff --git a/playgrounds/react/src/init.ts b/playgrounds/react/src/init.ts index ecd283cb1..4ad919bcc 100644 --- a/playgrounds/react/src/init.ts +++ b/playgrounds/react/src/init.ts @@ -31,7 +31,9 @@ export function init(debug: boolean): void { themeParams.mount(); initData.restore(); - void safeArea.mount().catch((e: any) => { + void safeArea.mount().then(() => { + safeArea.bindCssVars(); + }).catch((e: any) => { console.error('Something went wrong mounting the safe area', e); }); From 0de133d5e18099b281ec20446e7506a0991ae182 Mon Sep 17 00:00:00 2001 From: Maksim Sasnouski Date: Sat, 23 Nov 2024 03:57:25 +0300 Subject: [PATCH 16/34] docs(changeset): Add Safe Area functionality --- .changeset/healthy-dots-swim.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .changeset/healthy-dots-swim.md diff --git a/.changeset/healthy-dots-swim.md b/.changeset/healthy-dots-swim.md new file mode 100644 index 000000000..acefe9b6d --- /dev/null +++ b/.changeset/healthy-dots-swim.md @@ -0,0 +1,6 @@ +--- +"@telegram-apps/bridge": minor +"@telegram-apps/sdk": minor +--- + +Add Safe Area functionality From db6f8d29a6320efd941ea13f4e90568f9707ef7b Mon Sep 17 00:00:00 2001 From: Maksim Sasnouski Date: Sat, 23 Nov 2024 04:45:16 +0300 Subject: [PATCH 17/34] V8: Full Screen: fix: correct tests reset --- packages/sdk/test-utils/reset/reset.ts | 2 ++ .../sdk/test-utils/reset/resetSafeArea.ts | 23 +++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 packages/sdk/test-utils/reset/resetSafeArea.ts diff --git a/packages/sdk/test-utils/reset/reset.ts b/packages/sdk/test-utils/reset/reset.ts index 02645c19f..0678dd3a6 100644 --- a/packages/sdk/test-utils/reset/reset.ts +++ b/packages/sdk/test-utils/reset/reset.ts @@ -11,6 +11,7 @@ import { resetMainButton } from '@test-utils/reset/resetMainButton.js'; import { resetMiniApp } from '@test-utils/reset/resetMiniApp.js'; import { resetPopup } from '@test-utils/reset/resetPopup.js'; import { resetQrScanner } from '@test-utils/reset/resetQrScanner.js'; +import { resetSafeArea } from "@test-utils/reset/resetSafeArea.js"; import { resetSecondaryButton } from '@test-utils/reset/resetSecondaryButton.js'; import { resetSettingsButton } from '@test-utils/reset/resetSettingsButton.js'; import { resetSwipeBehavior } from '@test-utils/reset/resetSwipeBehavior.js'; @@ -36,6 +37,7 @@ export function resetPackageState() { resetPopup, resetPrivacy, resetQrScanner, + resetSafeArea, resetSecondaryButton, resetSettingsButton, resetSwipeBehavior, diff --git a/packages/sdk/test-utils/reset/resetSafeArea.ts b/packages/sdk/test-utils/reset/resetSafeArea.ts new file mode 100644 index 000000000..e7fdcc81b --- /dev/null +++ b/packages/sdk/test-utils/reset/resetSafeArea.ts @@ -0,0 +1,23 @@ +import { resetSignal } from '@test-utils/reset/reset.js'; + +import { + state, + mountError, + isMounted, + isCssVarsBound, + isMounting, + inset, + contentInset, +} from '@/scopes/components/safe-area/signals.js'; + +export function resetSafeArea() { + [ + state, + mountError, + isMounted, + isCssVarsBound, + isMounting, + inset, + contentInset, + ].forEach(resetSignal); +} \ No newline at end of file From 98b9346d7f54b786c7c36ce579d970c10e4254cc Mon Sep 17 00:00:00 2001 From: Vladislav Kibenko Date: Sun, 1 Dec 2024 23:27:01 +0500 Subject: [PATCH 18/34] docs(platform): remove safe-area page and move its content to viewport. Delete safe-area assets --- apps/docs/.vitepress/packages.ts | 1 - apps/docs/platform/safe-area.md | 20 ------------- apps/docs/platform/viewport.md | 27 ++++++++++++++++-- .../components/safe-area/content-inset.jpg | Bin 194088 -> 0 bytes .../public/components/safe-area/inset.jpg | Bin 189723 -> 0 bytes 5 files changed, 25 insertions(+), 23 deletions(-) delete mode 100644 apps/docs/platform/safe-area.md delete mode 100644 apps/docs/public/components/safe-area/content-inset.jpg delete mode 100644 apps/docs/public/components/safe-area/inset.jpg diff --git a/apps/docs/.vitepress/packages.ts b/apps/docs/.vitepress/packages.ts index 0e3cc27af..2aa1ca12b 100644 --- a/apps/docs/.vitepress/packages.ts +++ b/apps/docs/.vitepress/packages.ts @@ -101,7 +101,6 @@ export const packagesLinksGenerator = (prefix: string = '') => { scope('mini-app'), scope('popup'), scope('qr-scanner', 'QR Scanner'), - scope('safe-area'), scope('secondary-button'), scope('settings-button'), scope('swipe-behavior'), diff --git a/apps/docs/platform/safe-area.md b/apps/docs/platform/safe-area.md deleted file mode 100644 index f9a2a587b..000000000 --- a/apps/docs/platform/safe-area.md +++ /dev/null @@ -1,20 +0,0 @@ -# Safe Area - -The **safe area** ensures your app's content on mobile screens is fully visible and usable -by preventing it from being obscured by device features like notches or bottom dock (navigation bars) and Telegram UI features like buttons in [full screen mode](full-screen.md). - -In TMA there are 2 different Safe Area objects: -- Safe Area Inset -- Content Safe Area Inset - -## Safe Area Inset - -This Safe Area represents paddings from **Device UI** like notches, bottom dock (navigation bars) and other possible **System UI** elements. - -![Safe Area Inset](/components/safe-area/inset.jpg) - -## Content Safe Area Inset - -This Safe Area represents paddings from **Telegram UI** like buttons in [full screen mode](full-screen.md). - -![Content Safe Area Inset](/components/safe-area/content-inset.jpg) \ No newline at end of file diff --git a/apps/docs/platform/viewport.md b/apps/docs/platform/viewport.md index 3ad266ba6..fdf6e1d5d 100644 --- a/apps/docs/platform/viewport.md +++ b/apps/docs/platform/viewport.md @@ -12,6 +12,7 @@ Viewport data is defined by the following properties: - **`expansion`**: A boolean flag that is `true` when the Mini App has reached its maximum height. - **`fullscreen`**: A boolean flag indicating whether the application is displayed in fullscreen mode. +- **`safe area`**: An information describing the viewport content safe area and insets. ## Expanding @@ -39,7 +40,7 @@ cases, calling the [web_app_expand](methods.md#web-app-expand) method will have ## Fullscreen -![Full screen](/functionality/full-screen.png) +![Full screen](../public/functionality/full-screen.png) Mini apps can be launched in **fullscreen mode**, which expands the application to cover the entire device screen, removing both the top and bottom bars of Telegram. @@ -48,4 +49,26 @@ This mode is particularly suitable for games and media-focused applications. To control fullscreen mode, Telegram Mini Apps provides such methods as [web_app_request_fullscreen](methods.md#web_app_request_fullscreen) -and [web_app_exit_fullscreen](methods.md#web_app_exit_fullscreen). \ No newline at end of file +and [web_app_exit_fullscreen](methods.md#web_app_exit_fullscreen). + +[//]: # (TODO: Learn more and write this section) +[//]: # (## Safe Area) + +[//]: # () +[//]: # (In mini apps, the **safe area** refers to the portion of the screen that is free from) + +[//]: # (obstructions like notches, status bars, navigation bars, or rounded screen edges. It ensures that) + +[//]: # (essential content is displayed properly and not hidden or truncated.) + +[//]: # () +[//]: # (Using the safe area is crucial for delivering a seamless user experience, especially on devices with) + +[//]: # (modern screen designs (e.g., iPhones with notches or Android devices with rounded corners).) + +[//]: # (Developers typically use CSS properties or platform-specific guidelines) + +[//]: # ((e.g., `env(safe-area-inset-*)` in CSS) to adjust the layout within the safe area boundaries, but) + +[//]: # (in Telegram Mini Apps, these values are passed manually from the Telegram application.) + diff --git a/apps/docs/public/components/safe-area/content-inset.jpg b/apps/docs/public/components/safe-area/content-inset.jpg deleted file mode 100644 index 776e972813b4a1b063c0ad149b2a4f719b8d50c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 194088 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 W2LOW3u0Hm9nlG!?0PG`cum1y`R`Qhq diff --git a/apps/docs/public/components/safe-area/inset.jpg b/apps/docs/public/components/safe-area/inset.jpg deleted file mode 100644 index 62a430e0491fb34b64266dace9296e17d288db0b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 189723 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

ejtP?n0|`TQq#iz65uAp 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 Q&dc2~pBzDF`2W8N01xU3wEzGB From d49f2031aacb2acd229139d55f3357b1fe45cdee Mon Sep 17 00:00:00 2001 From: Vladislav Kibenko Date: Mon, 2 Dec 2024 22:38:48 +0500 Subject: [PATCH 19/34] fix(bridge): SafeAreaInset -> SafeAreaInsets --- packages/bridge/src/events/types/events.ts | 6 +++--- packages/bridge/src/events/types/misc.ts | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/bridge/src/events/types/events.ts b/packages/bridge/src/events/types/events.ts index 00307371e..300887395 100644 --- a/packages/bridge/src/events/types/events.ts +++ b/packages/bridge/src/events/types/events.ts @@ -7,7 +7,7 @@ import type { BiometryAuthRequestStatus, BiometryType, BiometryTokenUpdateStatus, - SafeAreaInset, + SafeAreaInsets, FullScreenErrorStatus, } from './misc.js'; @@ -256,14 +256,14 @@ export interface Events { * @since Mini Apps v8.0 * @see https://docs.telegram-mini-apps.com/platform/events#safe_area_changed * */ - safe_area_changed: SafeAreaInset; + safe_area_changed: SafeAreaInsets; /** * Occurs when the safe area for content changes * (e.g., due to orientation change or screen adjustments). * @since Mini Apps v8.0 * @see https://docs.telegram-mini-apps.com/platform/events#content_safe_area_changed * */ - content_safe_area_changed: SafeAreaInset; + content_safe_area_changed: SafeAreaInsets; /** * Occurs whenever theme settings are changed in the user's Telegram app * (including switching to night mode). diff --git a/packages/bridge/src/events/types/misc.ts b/packages/bridge/src/events/types/misc.ts index d58fc1d92..2ef5d539f 100644 --- a/packages/bridge/src/events/types/misc.ts +++ b/packages/bridge/src/events/types/misc.ts @@ -24,7 +24,7 @@ export type FullScreenErrorStatus = | 'UNSUPPORTED' | string; -export interface SafeAreaInset { +export interface SafeAreaInsets { top: number; bottom: number; left: number; From cb98b84e26fe5b9cda994fd543bd977d3318a426 Mon Sep 17 00:00:00 2001 From: Vladislav Kibenko Date: Mon, 2 Dec 2024 22:39:22 +0500 Subject: [PATCH 20/34] fix(sdk): fix invalid import from toolkit --- packages/sdk/src/scopes/signalifyAsyncFn.ts | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/packages/sdk/src/scopes/signalifyAsyncFn.ts b/packages/sdk/src/scopes/signalifyAsyncFn.ts index ad8333906..8f6970f2e 100644 --- a/packages/sdk/src/scopes/signalifyAsyncFn.ts +++ b/packages/sdk/src/scopes/signalifyAsyncFn.ts @@ -1,9 +1,5 @@ import { batch, type Signal } from '@telegram-apps/signals'; -import { - type AsyncOptions, - CancelablePromise, - type TypedError, -} from '@telegram-apps/toolkit'; +import { type AsyncOptions, CancelablePromise, type TypedError } from '@telegram-apps/bridge'; type AllowedFn = (options?: AsyncOptions) => R | CancelablePromise; From 225f6b8b1f13097ce94b5c46fa18478c78a4cfd8 Mon Sep 17 00:00:00 2001 From: Vladislav Kibenko Date: Mon, 2 Dec 2024 22:39:44 +0500 Subject: [PATCH 21/34] fix(sdk): remove data signal from createMountFn --- packages/sdk/src/scopes/createMountFn.ts | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/packages/sdk/src/scopes/createMountFn.ts b/packages/sdk/src/scopes/createMountFn.ts index 1b912ef8c..fea1c6d44 100644 --- a/packages/sdk/src/scopes/createMountFn.ts +++ b/packages/sdk/src/scopes/createMountFn.ts @@ -14,7 +14,6 @@ import { signalifyAsyncFn } from '@/scopes/signalifyAsyncFn.js'; * @param mount - function mounting the component * @param onMounted - function that will be called whenever mount was completed. * @param isMounted - signal containing the current mount completion state - * @param data - signal containing the current mount state * @param promise - signal containing the mount promise * @param error - signal containing the mount error */ @@ -24,10 +23,9 @@ export function createMountFn( mount: (options?: AsyncOptions) => R | CancelablePromise, onMounted: (result: R) => void, isMounted: Signal, - data: Signal, promise: Signal | undefined>, error: Signal, -): (options?: AsyncOptions) => CancelablePromise { +): (options?: AsyncOptions) => CancelablePromise { const noConcurrent = signalifyAsyncFn( mount, () => new TypedError( @@ -43,12 +41,10 @@ export function createMountFn( if (!isMounted()) { const result = await noConcurrent(options); batch(() => { - data.set(result); isMounted.set(true); onMounted(result); }); } - return data(); }); }; } From 09f47c745bf17a397c80cc7c17257a83954312c9 Mon Sep 17 00:00:00 2001 From: Vladislav Kibenko Date: Mon, 2 Dec 2024 22:58:59 +0500 Subject: [PATCH 22/34] feat(sdk/viewport): completely rework the component. Introduce insets --- .../src/scopes/components/viewport/const.ts | 7 + .../src/scopes/components/viewport/exports.ts | 18 +- .../components/viewport/exports.variable.ts | 47 +-- .../src/scopes/components/viewport/methods.ts | 296 ------------------ .../viewport/methods/bindCssVars.test.ts | 21 ++ .../viewport/methods/bindCssVars.ts | 104 ++++++ .../viewport/methods/expand.test.ts | 19 ++ .../components/viewport/methods/expand.ts | 19 ++ .../methods/fullscreen/createFullscreenFn.ts | 50 +++ .../methods/fullscreen/exitFullscreen.test.ts | 22 ++ .../methods/fullscreen/exitFullscreen.ts | 20 ++ .../fullscreen/requestFullscreen.test.ts | 22 ++ .../methods/fullscreen/requestFullscreen.ts | 21 ++ .../mounting/mount.test.ts} | 58 ++-- .../viewport/methods/mounting/mount.ts | 86 +++++ .../viewport/methods/mounting/shared.ts | 18 ++ .../viewport/methods/mounting/unmount.ts | 24 ++ .../static/requestContentSafeAreaInsets.ts | 24 ++ .../methods/static/requestSafeAreaInsets.ts | 24 ++ .../{ => methods/static}/requestViewport.ts | 15 +- .../components/viewport/methods/wrappers.ts | 9 + .../src/scopes/components/viewport/signals.ts | 136 -------- .../signals/content-safe-area-insets.ts | 14 + .../components/viewport/signals/css-vars.ts | 6 + .../components/viewport/signals/dimensions.ts | 41 +++ .../components/viewport/signals/flags.ts | 18 ++ .../components/viewport/signals/fullscreen.ts | 26 ++ .../components/viewport/signals/mounting.ts | 24 ++ .../viewport/signals/safe-area-insets.ts | 14 + .../components/viewport/signals/state.ts | 54 ++++ .../src/scopes/components/viewport/types.ts | 20 +- .../sdk/test-utils/reset/resetViewport.ts | 62 ++-- 32 files changed, 821 insertions(+), 518 deletions(-) create mode 100644 packages/sdk/src/scopes/components/viewport/const.ts delete mode 100644 packages/sdk/src/scopes/components/viewport/methods.ts create mode 100644 packages/sdk/src/scopes/components/viewport/methods/bindCssVars.test.ts create mode 100644 packages/sdk/src/scopes/components/viewport/methods/bindCssVars.ts create mode 100644 packages/sdk/src/scopes/components/viewport/methods/expand.test.ts create mode 100644 packages/sdk/src/scopes/components/viewport/methods/expand.ts create mode 100644 packages/sdk/src/scopes/components/viewport/methods/fullscreen/createFullscreenFn.ts create mode 100644 packages/sdk/src/scopes/components/viewport/methods/fullscreen/exitFullscreen.test.ts create mode 100644 packages/sdk/src/scopes/components/viewport/methods/fullscreen/exitFullscreen.ts create mode 100644 packages/sdk/src/scopes/components/viewport/methods/fullscreen/requestFullscreen.test.ts create mode 100644 packages/sdk/src/scopes/components/viewport/methods/fullscreen/requestFullscreen.ts rename packages/sdk/src/scopes/components/viewport/{methods.test.ts => methods/mounting/mount.test.ts} (65%) create mode 100644 packages/sdk/src/scopes/components/viewport/methods/mounting/mount.ts create mode 100644 packages/sdk/src/scopes/components/viewport/methods/mounting/shared.ts create mode 100644 packages/sdk/src/scopes/components/viewport/methods/mounting/unmount.ts create mode 100644 packages/sdk/src/scopes/components/viewport/methods/static/requestContentSafeAreaInsets.ts create mode 100644 packages/sdk/src/scopes/components/viewport/methods/static/requestSafeAreaInsets.ts rename packages/sdk/src/scopes/components/viewport/{ => methods/static}/requestViewport.ts (65%) create mode 100644 packages/sdk/src/scopes/components/viewport/methods/wrappers.ts delete mode 100644 packages/sdk/src/scopes/components/viewport/signals.ts create mode 100644 packages/sdk/src/scopes/components/viewport/signals/content-safe-area-insets.ts create mode 100644 packages/sdk/src/scopes/components/viewport/signals/css-vars.ts create mode 100644 packages/sdk/src/scopes/components/viewport/signals/dimensions.ts create mode 100644 packages/sdk/src/scopes/components/viewport/signals/flags.ts create mode 100644 packages/sdk/src/scopes/components/viewport/signals/fullscreen.ts create mode 100644 packages/sdk/src/scopes/components/viewport/signals/mounting.ts create mode 100644 packages/sdk/src/scopes/components/viewport/signals/safe-area-insets.ts create mode 100644 packages/sdk/src/scopes/components/viewport/signals/state.ts diff --git a/packages/sdk/src/scopes/components/viewport/const.ts b/packages/sdk/src/scopes/components/viewport/const.ts new file mode 100644 index 000000000..5589d0461 --- /dev/null +++ b/packages/sdk/src/scopes/components/viewport/const.ts @@ -0,0 +1,7 @@ +export const COMPONENT_NAME = 'viewport'; +export const REQUEST_FS_METHOD = 'web_app_request_fullscreen'; +export const FS_FAILED_EVENT = 'fullscreen_failed'; +export const FS_CHANGED_EVENT = 'fullscreen_changed'; +export const VIEWPORT_CHANGED_EVENT = 'viewport_changed'; +export const REQUEST_SAFE_AREA_METHOD = 'web_app_request_safe_area'; +export const REQUEST_CONTENT_SAFE_AREA_METHOD = 'web_app_request_content_safe_area'; \ No newline at end of file diff --git a/packages/sdk/src/scopes/components/viewport/exports.ts b/packages/sdk/src/scopes/components/viewport/exports.ts index 92d12fbcf..fa3ec2775 100644 --- a/packages/sdk/src/scopes/components/viewport/exports.ts +++ b/packages/sdk/src/scopes/components/viewport/exports.ts @@ -20,14 +20,24 @@ export { stableHeight as viewportStableHeight, unmount as unmountViewport, width as viewportWidth, + safeAreaInsetBottom as viewportSafeAreaInsetBottom, + safeAreaInsetLeft as viewportSafeAreaInsetLeft, + safeAreaInsetRight as viewportSafeAreaInsetRight, + safeAreaInsetTop as viewportSafeAreaInsetTop, + safeAreaInsets as viewportSafeAreaInsets, + contentSafeAreaInsets as viewportContentSafeAreaInsets, + contentSafeAreaInsetTop as viewportContentSafeAreaInsetTop, + contentSafeAreaInsetBottom as viewportContentSafeAreaInsetBottom, + contentSafeAreaInsetLeft as viewportContentSafeAreaInsetLeft, + contentSafeAreaInsetRight as viewportContentSafeAreaInsetRight, } from './exports.variable.js'; export * as viewport from './exports.variable.js'; -export { - requestViewport, - type RequestViewportResult -} from './requestViewport.js'; +export { requestContentSafeAreaInsets } from './methods/static/requestContentSafeAreaInsets.js'; +export { requestSafeAreaInsets } from './methods/static/requestSafeAreaInsets.js'; +export { requestViewport, type RequestViewportResult } from './methods/static/requestViewport.js'; export type { State as ViewportState, GetCSSVarNameFn as ViewportGetCSSVarNameFn, + GetCSSVarNameKey as ViewportGetCSSVarNameKey, } from './types.js'; \ No newline at end of file diff --git a/packages/sdk/src/scopes/components/viewport/exports.variable.ts b/packages/sdk/src/scopes/components/viewport/exports.variable.ts index e28a59f7d..752c39410 100644 --- a/packages/sdk/src/scopes/components/viewport/exports.variable.ts +++ b/packages/sdk/src/scopes/components/viewport/exports.variable.ts @@ -1,25 +1,32 @@ +export { requestFullscreen } from './methods/fullscreen/requestFullscreen.js'; +export { exitFullscreen } from './methods/fullscreen/exitFullscreen.js'; +export { mount } from './methods/mounting/mount.js'; +export { unmount } from './methods/mounting/unmount.js'; +export { bindCssVars } from './methods/bindCssVars.js'; +export { expand } from './methods/expand.js'; + +export { + contentSafeAreaInsetRight, + contentSafeAreaInsetLeft, + contentSafeAreaInsetBottom, + contentSafeAreaInsetTop, + contentSafeAreaInsets, +} from './signals/content-safe-area-insets.js'; +export { isCssVarsBound } from './signals/css-vars.js'; +export { stableHeight, width, height } from './signals/dimensions.js'; +export { isStable, isExpanded } from './signals/flags.js'; export { changeFullscreenError, changeFullscreenPromise, - height, - isMounted, - isStable, - isChangingFullscreen, - isMounting, - isExpanded, isFullscreen, - isCssVarsBound, - mountPromise, - mountError, - state, - stableHeight, - width, -} from './signals.js'; + isChangingFullscreen, +} from './signals/fullscreen.js'; +export { isMounted, isMounting, mountError, mountPromise } from './signals/mounting.js'; export { - bindCssVars, - exitFullscreen, - expand, - mount, - requestFullscreen, - unmount, -} from './methods.js'; \ No newline at end of file + safeAreaInsets, + safeAreaInsetTop, + safeAreaInsetRight, + safeAreaInsetLeft, + safeAreaInsetBottom, +} from './signals/safe-area-insets.js'; +export { state } from './signals/state.js'; diff --git a/packages/sdk/src/scopes/components/viewport/methods.ts b/packages/sdk/src/scopes/components/viewport/methods.ts deleted file mode 100644 index 895a3689f..000000000 --- a/packages/sdk/src/scopes/components/viewport/methods.ts +++ /dev/null @@ -1,296 +0,0 @@ -import { - off, - on, - retrieveLaunchParams, - camelToKebab, - getStorageValue, - setStorageValue, - deleteCssVar, - setCssVar, - type EventListener, CancelablePromise, AsyncOptions, TypedError, -} from '@telegram-apps/bridge'; -import { isPageReload } from '@telegram-apps/navigation'; - -import { postEvent, request } from '@/scopes/globals.js'; -import { createMountFn } from '@/scopes/createMountFn.js'; -import { createWrapMounted } from '@/scopes/toolkit/createWrapMounted.js'; -import { createWrapBasic } from '@/scopes/toolkit/createWrapBasic.js'; -import { throwCssVarsBound } from '@/scopes/toolkit/throwCssVarsBound.js'; -import { ERR_FULLSCREEN_FAILED } from '@/errors.js'; -import { removeUndefined } from '@/utils/removeUndefined.js'; -import { createWrapComplete } from '@/scopes/toolkit/createWrapComplete.js'; -import { signalifyAsyncFn } from '@/scopes/signalifyAsyncFn.js'; - -import { requestViewport } from './requestViewport.js'; -import { - state, - mountError, - isMounted, - isCssVarsBound, - mountPromise, - changeFullscreenPromise, - changeFullscreenError, - isFullscreen, -} from './signals.js'; -import type { GetCSSVarNameFn } from './types.js'; -import type { State } from './types.js'; - -type StorageValue = State; - -const COMPONENT_NAME = 'viewport'; -const FS_REQUEST_METHOD_NAME = 'web_app_request_fullscreen'; -const FS_FAILED_EVENT_NAME = 'fullscreen_failed'; -const FS_CHANGED_EVENT_NAME = 'fullscreen_changed'; - -const wrapBasic = createWrapBasic(COMPONENT_NAME); -const wrapMounted = createWrapMounted(COMPONENT_NAME, isMounted); -const wrapFSComplete = createWrapComplete(COMPONENT_NAME, isMounted, FS_REQUEST_METHOD_NAME); - -/** - * Creates CSS variables connected with the current viewport. - * - * By default, created CSS variables names are following the pattern - * "--tg-theme-{name}", where - * {name} is a theme parameters key name converted from camel case to kebab - * case. - * - * Default variables: - * - `--tg-viewport-height` - * - `--tg-viewport-width` - * - `--tg-viewport-stable-height` - * - * Variables are being automatically updated if the viewport was changed. - * - * @param getCSSVarName - function, returning complete CSS variable name for - * the specified viewport property. - * @returns Function to stop updating variables. - * @throws {TypedError} ERR_UNKNOWN_ENV - * @throws {TypedError} ERR_VARS_ALREADY_BOUND - * @throws {TypedError} ERR_NOT_MOUNTED - * @throws {TypedError} ERR_NOT_INITIALIZED - * @example Using no arguments - * if (bindCssVars.isAvailable()) { - * bindCssVars(); - * } - * @example Using custom CSS vars generator - * if (bindCssVars.isAvailable()) { - * bindCssVars(key => `--my-prefix-${key}`); - * } - */ -export const bindCssVars = wrapMounted( - 'bindCssVars', - (getCSSVarName?: GetCSSVarNameFn): VoidFunction => { - isCssVarsBound() && throwCssVarsBound(); - - getCSSVarName ||= (prop) => `--tg-viewport-${camelToKebab(prop)}`; - const props = ['height', 'width', 'stableHeight'] as const; - - function actualize(): void { - props.forEach(prop => { - setCssVar(getCSSVarName!(prop), `${state()[prop]}px`); - }); - } - - actualize(); - state.sub(actualize); - isCssVarsBound.set(true); - - return () => { - props.forEach(deleteCssVar); - state.unsub(actualize); - isCssVarsBound.set(false); - }; - }, -); - -/** - * A method that expands the Mini App to the maximum available height. To find - * out if the Mini App is expanded to the maximum height, refer to the value of - * the `isExpanded`. - * @throws {TypedError} ERR_UNKNOWN_ENV - * @throws {TypedError} ERR_NOT_INITIALIZED - * @see isExpanded - * @example - * if (expand.isAvailable()) { - * expand(); - * } - */ -export const expand = wrapBasic('expand', (): void => { - postEvent('web_app_expand'); -}); - -/** - * Mounts the Viewport component. - * @throws {TypedError} ERR_UNKNOWN_ENV - * @throws {TypedError} ERR_NOT_INITIALIZED - * @throws {TypedError} ERR_ALREADY_MOUNTING - * @example - * if (mount.isAvailable() && !isMounting()) { - * await mount(); - * } - */ -export const mount = wrapBasic('mount', createMountFn( - COMPONENT_NAME, - (options) => { - // Try to restore the state using the storage. - const s = isPageReload() && getStorageValue(COMPONENT_NAME); - if (s) { - return s; - } - - // If the platform has a stable viewport, it means we could use the - // window global object properties. - const lp = retrieveLaunchParams(); - const isFullscreen = !!lp.fullscreen; - if (['macos', 'tdesktop', 'unigram', 'webk', 'weba', 'web'].includes(lp.platform)) { - const w = window; - return { - isExpanded: true, - isFullscreen, - height: w.innerHeight, - width: w.innerWidth, - stableHeight: w.innerHeight, - }; - } - - // We were unable to retrieve data locally. In this case, we are - // sending a request returning the viewport information. - return requestViewport(options).then(data => ({ - height: data.height, - isExpanded: data.isExpanded, - isFullscreen, - stableHeight: data.isStable ? data.height : state().stableHeight, - width: data.width, - })); - }, - () => { - on('viewport_changed', onViewportChanged); - on(FS_CHANGED_EVENT_NAME, onFullscreenChanged); - }, - isMounted, - state, - mountPromise, - mountError, -)); - -const onViewportChanged: EventListener<'viewport_changed'> = (data) => { - setState({ - height: data.height, - isExpanded: data.is_expanded, - stableHeight: data.is_state_stable ? data.height : undefined, - width: data.width, - }); -}; - -const onFullscreenChanged: EventListener<'fullscreen_changed'> = (data) => { - setState({ isFullscreen: data.is_fullscreen }); -}; - -function fsChangeGen( - method: string, - requestMethod: 'web_app_exit_fullscreen' | 'web_app_request_fullscreen', -) { - return wrapFSComplete(method, signalifyAsyncFn( - (options?: AsyncOptions): CancelablePromise => { - return request(requestMethod, [FS_CHANGED_EVENT_NAME, FS_FAILED_EVENT_NAME], options) - .then(result => { - if ('error' in result) { - if (result.error === 'ALREADY_FULLSCREEN') { - return true; - } - throw new TypedError(ERR_FULLSCREEN_FAILED, 'Fullscreen request failed', result.error); - } - return result.is_fullscreen; - }) - .then(result => { - isFullscreen() !== result && setState({ isFullscreen: result }); - }); - }, - () => new TypedError('abc'), - changeFullscreenPromise, - changeFullscreenError, - )); -} - -/** - * Requests fullscreen mode for the mini application. - * @since Mini Apps v8.0 - * @throws {TypedError} ERR_UNKNOWN_ENV - * @throws {TypedError} ERR_NOT_INITIALIZED - * @throws {TypedError} ERR_NOT_MOUNTED - * @throws {TypedError} ERR_NOT_SUPPORTED - * @throws {TypedError} ERR_FULLSCREEN_FAILED - * @example Using `isAvailable()` - * if (requestFullscreen.isAvailable() && !isChangingFullscreen()) { - * await requestFullscreen(); - * } - * @example Using `ifAvailable()` - * if (!isChangingFullscreen()) { - * await requestFullscreen.ifAvailable(); - * } - */ -export const requestFullscreen = fsChangeGen( - 'requestFullscreen', - FS_REQUEST_METHOD_NAME, -); - -/** - * Exits mini application fullscreen mode. - * @since Mini Apps v8.0 - * @throws {TypedError} ERR_UNKNOWN_ENV - * @throws {TypedError} ERR_NOT_INITIALIZED - * @throws {TypedError} ERR_NOT_MOUNTED - * @throws {TypedError} ERR_NOT_SUPPORTED - * @throws {TypedError} ERR_FULLSCREEN_FAILED - * @example Using `isAvailable()` - * if (exitFullscreen.isAvailable() && !isChangingFullscreen()) { - * await exitFullscreen(); - * } - * @example Using `ifAvailable()` - * if (!isChangingFullscreen()) { - * await exitFullscreen.ifAvailable(); - * } - */ -export const exitFullscreen = fsChangeGen( - 'exitFullscreen', - 'web_app_exit_fullscreen', -); - -function setState(s: Partial) { - const { height, stableHeight, width } = s; - - state.set({ - ...state(), - ...removeUndefined({ - ...s, - height: height ? truncate(height) : undefined, - width: width ? truncate(width) : undefined, - stableHeight: stableHeight ? truncate(stableHeight) : undefined, - }), - }); - setStorageValue(COMPONENT_NAME, state()); -} - -/** - * Formats value to make it stay in bounds [0, +Inf). - * @param value - value to format. - */ -function truncate(value: number): number { - return Math.max(value, 0); -} - -/** - * Unmounts the Viewport. - */ -export function unmount(): void { - // Cancel mount promise. - const promise = mountPromise(); - promise && promise.cancel(); - - // Remove event listeners. - off('viewport_changed', onViewportChanged); - off('fullscreen_changed', onFullscreenChanged); - - // Drop the mount flag. - isMounted.set(false); -} diff --git a/packages/sdk/src/scopes/components/viewport/methods/bindCssVars.test.ts b/packages/sdk/src/scopes/components/viewport/methods/bindCssVars.test.ts new file mode 100644 index 000000000..580f4676f --- /dev/null +++ b/packages/sdk/src/scopes/components/viewport/methods/bindCssVars.test.ts @@ -0,0 +1,21 @@ +import { beforeEach, describe, vi } from 'vitest'; + +import { testSafety } from '@test-utils/predefined/testSafety.js'; +import { resetPackageState } from '@test-utils/reset/reset.js'; +import { mockPostEvent } from '@test-utils/mockPostEvent.js'; + +import { isMounted } from '../signals/mounting.js'; +import { bindCssVars } from '@/scopes/components/viewport/methods/bindCssVars.js'; + +beforeEach(() => { + resetPackageState(); + vi.restoreAllMocks(); + mockPostEvent(); +}); + +describe('safety', () => { + testSafety(bindCssVars, 'bindCssVars', { + component: 'viewport', + isMounted, + }); +}); diff --git a/packages/sdk/src/scopes/components/viewport/methods/bindCssVars.ts b/packages/sdk/src/scopes/components/viewport/methods/bindCssVars.ts new file mode 100644 index 000000000..d72ffc468 --- /dev/null +++ b/packages/sdk/src/scopes/components/viewport/methods/bindCssVars.ts @@ -0,0 +1,104 @@ +import { camelToKebab, deleteCssVar, setCssVar } from '@telegram-apps/bridge'; + +import { throwCssVarsBound } from '@/scopes/toolkit/throwCssVarsBound.js'; + +import { isCssVarsBound } from '../signals/css-vars.js'; +import { height, width, stableHeight } from '../signals/dimensions.js'; +import { + safeAreaInsetBottom, + safeAreaInsetTop, + safeAreaInsetRight, + safeAreaInsetLeft, +} from '../signals/safe-area-insets.js'; +import { + contentSafeAreaInsetBottom, + contentSafeAreaInsetTop, + contentSafeAreaInsetRight, + contentSafeAreaInsetLeft, +} from '../signals/content-safe-area-insets.js'; + +import { wrapMounted } from './wrappers.js'; +import type { GetCSSVarNameFn } from '../types.js'; + +/** + * Creates CSS variables connected with the current viewport. + * + * By default, created CSS variables names are following the pattern + * "--tg-theme-{name}", where + * {name} is a theme parameters key name converted from camel case to kebab + * case. + * + * Default variables: + * - `--tg-viewport-height` + * - `--tg-viewport-width` + * - `--tg-viewport-stable-height` + * + * Variables are being automatically updated if the viewport was changed. + * + * @param getCSSVarName - function, returning complete CSS variable name for + * the specified viewport property. + * @returns Function to stop updating variables. + * @throws {TypedError} ERR_UNKNOWN_ENV + * @throws {TypedError} ERR_VARS_ALREADY_BOUND + * @throws {TypedError} ERR_NOT_MOUNTED + * @throws {TypedError} ERR_NOT_INITIALIZED + * @example Using no arguments + * if (bindCssVars.isAvailable()) { + * bindCssVars(); + * } + * @example Using custom CSS vars generator + * if (bindCssVars.isAvailable()) { + * bindCssVars(key => `--my-prefix-${key}`); + * } + */ +export const bindCssVars = wrapMounted( + 'bindCssVars', + (getCSSVarName?: GetCSSVarNameFn): VoidFunction => { + isCssVarsBound() && throwCssVarsBound(); + + getCSSVarName ||= (prop) => `--tg-viewport-${camelToKebab(prop)}`; + + const settings = ([ + ['height', height], + ['stableHeight', stableHeight], + ['width', width], + ['safeAreaInsetTop', safeAreaInsetTop], + ['safeAreaInsetBottom', safeAreaInsetBottom], + ['safeAreaInsetLeft', safeAreaInsetLeft], + ['safeAreaInsetRight', safeAreaInsetRight], + ['contentSafeAreaInsetTop', contentSafeAreaInsetTop], + ['contentSafeAreaInsetBottom', contentSafeAreaInsetBottom], + ['contentSafeAreaInsetLeft', contentSafeAreaInsetLeft], + ['contentSafeAreaInsetRight', contentSafeAreaInsetRight], + ] as const).reduce<[ + update: VoidFunction, + removeListener: VoidFunction, + cssVar: string + ][]>((acc, [key, signal]) => { + const cssVar = getCSSVarName(key); + if (cssVar) { + const update = () => { + setCssVar(cssVar, `${signal()}px`); + }; + acc.push([update, signal.sub(update), cssVar]); + } + return acc; + }, []); + + // Instantly set CSS variables. + settings.forEach(setting => { + setting[0](); + }); + isCssVarsBound.set(true); + + return () => { + settings.forEach(s => { + // Remove update listener. + s[1](); + // Remove CSS variable. + deleteCssVar(s[2]); + }); + isCssVarsBound.set(false); + }; + }, +); \ No newline at end of file diff --git a/packages/sdk/src/scopes/components/viewport/methods/expand.test.ts b/packages/sdk/src/scopes/components/viewport/methods/expand.test.ts new file mode 100644 index 000000000..8e2a32bba --- /dev/null +++ b/packages/sdk/src/scopes/components/viewport/methods/expand.test.ts @@ -0,0 +1,19 @@ +import { beforeEach, describe, vi } from 'vitest'; + +import { testSafety } from '@test-utils/predefined/testSafety.js'; +import { resetPackageState } from '@test-utils/reset/reset.js'; +import { mockPostEvent } from '@test-utils/mockPostEvent.js'; + +import { expand } from '@/scopes/components/viewport/methods/expand.js'; + +beforeEach(() => { + resetPackageState(); + vi.restoreAllMocks(); + mockPostEvent(); +}); + +describe('safety', () => { + testSafety(expand, 'expand', { + component: 'viewport', + }); +}); diff --git a/packages/sdk/src/scopes/components/viewport/methods/expand.ts b/packages/sdk/src/scopes/components/viewport/methods/expand.ts new file mode 100644 index 000000000..c2f4701fd --- /dev/null +++ b/packages/sdk/src/scopes/components/viewport/methods/expand.ts @@ -0,0 +1,19 @@ +import { postEvent } from '@/scopes/globals.js'; + +import { wrapBasic } from './wrappers.js'; + +/** + * A method that expands the Mini App to the maximum available height. To find + * out if the Mini App is expanded to the maximum height, refer to the value of + * the `isExpanded`. + * @throws {TypedError} ERR_UNKNOWN_ENV + * @throws {TypedError} ERR_NOT_INITIALIZED + * @see isExpanded + * @example + * if (expand.isAvailable()) { + * expand(); + * } + */ +export const expand = wrapBasic('expand', (): void => { + postEvent('web_app_expand'); +}); diff --git a/packages/sdk/src/scopes/components/viewport/methods/fullscreen/createFullscreenFn.ts b/packages/sdk/src/scopes/components/viewport/methods/fullscreen/createFullscreenFn.ts new file mode 100644 index 000000000..8d26a9a69 --- /dev/null +++ b/packages/sdk/src/scopes/components/viewport/methods/fullscreen/createFullscreenFn.ts @@ -0,0 +1,50 @@ +import { signalifyAsyncFn } from '@/scopes/signalifyAsyncFn.js'; +import { type AsyncOptions, CancelablePromise, TypedError } from '@telegram-apps/bridge'; + +import { request } from '@/scopes/globals.js'; +import { ERR_ALREADY_REQUESTING, ERR_FULLSCREEN_FAILED } from '@/errors.js'; +import { createWrapComplete } from '@/scopes/toolkit/createWrapComplete.js'; + +import { + COMPONENT_NAME, + FS_CHANGED_EVENT, + FS_FAILED_EVENT, + REQUEST_FS_METHOD, +} from '../../const.js'; +import { + changeFullscreenError, + changeFullscreenPromise, + isFullscreen, +} from '../../signals/fullscreen.js'; +import { isMounted } from '../../signals/mounting.js'; +import { setState } from '@/scopes/components/viewport/signals/state.js'; + +const wrapComplete = createWrapComplete(COMPONENT_NAME, isMounted, REQUEST_FS_METHOD); + +export function createFullscreenFn( + method: string, + requestMethod: 'web_app_exit_fullscreen' | 'web_app_request_fullscreen', +) { + return wrapComplete(method, signalifyAsyncFn( + (options?: AsyncOptions): CancelablePromise => { + return request(requestMethod, [FS_CHANGED_EVENT, FS_FAILED_EVENT], options) + .then(result => { + if ('error' in result) { + if (result.error === 'ALREADY_FULLSCREEN') { + return true; + } + throw new TypedError(ERR_FULLSCREEN_FAILED, 'Fullscreen request failed', result.error); + } + return result.is_fullscreen; + }) + .then(value => { + value !== isFullscreen() && setState({ isFullscreen: value }); + }); + }, + () => { + return new TypedError(ERR_ALREADY_REQUESTING, 'Fullscreen mode change is already being requested'); + }, + changeFullscreenPromise, + changeFullscreenError, + )); +} diff --git a/packages/sdk/src/scopes/components/viewport/methods/fullscreen/exitFullscreen.test.ts b/packages/sdk/src/scopes/components/viewport/methods/fullscreen/exitFullscreen.test.ts new file mode 100644 index 000000000..530ac9581 --- /dev/null +++ b/packages/sdk/src/scopes/components/viewport/methods/fullscreen/exitFullscreen.test.ts @@ -0,0 +1,22 @@ +import { beforeEach, describe, vi } from 'vitest'; + +import { testSafety } from '@test-utils/predefined/testSafety.js'; +import { resetPackageState } from '@test-utils/reset/reset.js'; +import { mockPostEvent } from '@test-utils/mockPostEvent.js'; + +import { isMounted } from '../../signals/mounting.js'; +import { exitFullscreen } from './exitFullscreen.js'; + +beforeEach(() => { + resetPackageState(); + vi.restoreAllMocks(); + mockPostEvent(); +}); + +describe('safety', () => { + testSafety(exitFullscreen, 'exitFullscreen', { + component: 'viewport', + minVersion: '8.0', + isMounted, + }); +}); diff --git a/packages/sdk/src/scopes/components/viewport/methods/fullscreen/exitFullscreen.ts b/packages/sdk/src/scopes/components/viewport/methods/fullscreen/exitFullscreen.ts new file mode 100644 index 000000000..3bff94999 --- /dev/null +++ b/packages/sdk/src/scopes/components/viewport/methods/fullscreen/exitFullscreen.ts @@ -0,0 +1,20 @@ +import { createFullscreenFn } from './createFullscreenFn.js'; + +/** + * Exits mini application fullscreen mode. + * @since Mini Apps v8.0 + * @throws {TypedError} ERR_UNKNOWN_ENV + * @throws {TypedError} ERR_NOT_INITIALIZED + * @throws {TypedError} ERR_NOT_MOUNTED + * @throws {TypedError} ERR_NOT_SUPPORTED + * @throws {TypedError} ERR_FULLSCREEN_FAILED + * @example Using `isAvailable()` + * if (exitFullscreen.isAvailable() && !isChangingFullscreen()) { + * await exitFullscreen(); + * } + * @example Using `ifAvailable()` + * if (!isChangingFullscreen()) { + * await exitFullscreen.ifAvailable(); + * } + */ +export const exitFullscreen = createFullscreenFn('exitFullscreen', 'web_app_exit_fullscreen'); \ No newline at end of file diff --git a/packages/sdk/src/scopes/components/viewport/methods/fullscreen/requestFullscreen.test.ts b/packages/sdk/src/scopes/components/viewport/methods/fullscreen/requestFullscreen.test.ts new file mode 100644 index 000000000..e367785a8 --- /dev/null +++ b/packages/sdk/src/scopes/components/viewport/methods/fullscreen/requestFullscreen.test.ts @@ -0,0 +1,22 @@ +import { beforeEach, describe, vi } from 'vitest'; + +import { testSafety } from '@test-utils/predefined/testSafety.js'; +import { resetPackageState } from '@test-utils/reset/reset.js'; +import { mockPostEvent } from '@test-utils/mockPostEvent.js'; + +import { isMounted } from '../../signals/mounting.js'; +import { requestFullscreen } from './requestFullscreen.js'; + +beforeEach(() => { + resetPackageState(); + vi.restoreAllMocks(); + mockPostEvent(); +}); + +describe('safety', () => { + testSafety(requestFullscreen, 'requestFullscreen', { + component: 'viewport', + minVersion: '8.0', + isMounted, + }); +}); diff --git a/packages/sdk/src/scopes/components/viewport/methods/fullscreen/requestFullscreen.ts b/packages/sdk/src/scopes/components/viewport/methods/fullscreen/requestFullscreen.ts new file mode 100644 index 000000000..218ddd150 --- /dev/null +++ b/packages/sdk/src/scopes/components/viewport/methods/fullscreen/requestFullscreen.ts @@ -0,0 +1,21 @@ +import { createFullscreenFn } from './createFullscreenFn.js'; +import { REQUEST_FS_METHOD } from '../../const.js'; + +/** + * Requests fullscreen mode for the mini application. + * @since Mini Apps v8.0 + * @throws {TypedError} ERR_UNKNOWN_ENV + * @throws {TypedError} ERR_NOT_INITIALIZED + * @throws {TypedError} ERR_NOT_MOUNTED + * @throws {TypedError} ERR_NOT_SUPPORTED + * @throws {TypedError} ERR_FULLSCREEN_FAILED + * @example Using `isAvailable()` + * if (requestFullscreen.isAvailable() && !isChangingFullscreen()) { + * await requestFullscreen(); + * } + * @example Using `ifAvailable()` + * if (!isChangingFullscreen()) { + * await requestFullscreen.ifAvailable(); + * } + */ +export const requestFullscreen = createFullscreenFn('requestFullscreen', REQUEST_FS_METHOD); \ No newline at end of file diff --git a/packages/sdk/src/scopes/components/viewport/methods.test.ts b/packages/sdk/src/scopes/components/viewport/methods/mounting/mount.test.ts similarity index 65% rename from packages/sdk/src/scopes/components/viewport/methods.test.ts rename to packages/sdk/src/scopes/components/viewport/methods/mounting/mount.test.ts index afc21eca9..faeb48f8a 100644 --- a/packages/sdk/src/scopes/components/viewport/methods.test.ts +++ b/packages/sdk/src/scopes/components/viewport/methods/mounting/mount.test.ts @@ -5,10 +5,13 @@ import { testSafety } from '@test-utils/predefined/testSafety.js'; import { resetPackageState } from '@test-utils/reset/reset.js'; import { mockPostEvent } from '@test-utils/mockPostEvent.js'; import { mockMiniAppsEnv } from '@test-utils/mockMiniAppsEnv.js'; -import { setMaxVersion } from '@test-utils/setMaxVersion.js'; -import { mount, expand, bindCssVars, exitFullscreen, requestFullscreen } from './methods.js'; -import { isMounted } from './signals.js'; +import { mount } from '@/scopes/components/viewport/methods/mounting/mount.js'; +import { isMounted } from '@/scopes/components/viewport/signals/mounting.js'; +import { isFullscreen } from '@/scopes/components/viewport/signals/fullscreen.js'; +import { isExpanded } from '@/scopes/components/viewport/signals/flags.js'; +import { $version } from '@/scopes/globals.js'; +import { state } from '@/scopes/components/viewport/signals/state.js'; beforeEach(() => { resetPackageState(); @@ -16,24 +19,16 @@ beforeEach(() => { mockPostEvent(); }); -describe.each([ - ['mount', mount, undefined, undefined], - ['expand', expand, undefined, undefined], - ['bindCssVars', bindCssVars, isMounted, undefined], - ['exitFullscreen', exitFullscreen, isMounted, '8.0'], - ['requestFullscreen', requestFullscreen, isMounted, '8.0'], -] as const)('%s', (name, fn, isMounted, minVersion) => { - testSafety(fn, name, { +describe('safety', () => { + testSafety(mount, 'mount', { component: 'viewport', - minVersion, - isMounted, }); }); -describe('mount', () => { +describe('is safe', () => { beforeEach(() => { mockMiniAppsEnv(); - setMaxVersion(); + $version.set('7.9'); }); it('should set isMounted = true', async () => { @@ -49,43 +44,56 @@ describe('mount', () => { it('should use values from session storage key "tapps/viewport"', async () => { const storageState = { + contentSafeAreaInsets: { + bottom: 331, + left: 2, + right: 5, + top: 1, + }, + height: 333, isExpanded: true, isFullscreen: true, - height: 1000, - width: 2000, - stableHeight: 1000, + safeAreaInsets: { + bottom: 55, + left: 12, + right: 31, + top: 5, + }, + stableHeight: 12, + width: 444, }; const spy = mockSessionStorageGetItem(() => { return JSON.stringify(storageState); }); - const state = await mount(); + await mount(); expect(spy).toHaveBeenCalledTimes(1); expect(spy).toHaveBeenCalledWith('tapps/viewport'); - expect(state).toEqual(storageState); + expect(state()).toEqual(storageState); }); it('should set isFullscreen false if session storage key "tapps/viewport" is not present', async () => { const spy = mockSessionStorageGetItem(() => null); - const state = await mount(); + await mount(); expect(spy).toHaveBeenCalledTimes(1); expect(spy).toHaveBeenCalledWith('tapps/viewport'); - expect(state.isFullscreen).toBe(false); + expect(isFullscreen()).toBe(false); }); it('should set isExpanded true if session storage key "tapps/viewport" is not present', async () => { const spy = mockSessionStorageGetItem(() => null); - const state = await mount(); + await mount(); expect(spy).toHaveBeenCalledTimes(1); expect(spy).toHaveBeenCalledWith('tapps/viewport'); - expect(state.isExpanded).toBe(true); + expect(isExpanded()).toBe(true); }); }); describe('first launch', () => { it('should set isFullscreen false', async () => { - expect((await mount()).isFullscreen).toBe(false) + await mount(); + expect(isFullscreen()).toBe(false); }); // TODO: Incorrect test. This value depends on the platform also. diff --git a/packages/sdk/src/scopes/components/viewport/methods/mounting/mount.ts b/packages/sdk/src/scopes/components/viewport/methods/mounting/mount.ts new file mode 100644 index 000000000..b61b26ba0 --- /dev/null +++ b/packages/sdk/src/scopes/components/viewport/methods/mounting/mount.ts @@ -0,0 +1,86 @@ +import { isPageReload } from '@telegram-apps/navigation'; +import { CancelablePromise, on, retrieveLaunchParams } from '@telegram-apps/bridge'; + +import { createMountFn } from '@/scopes/createMountFn.js'; + +import { wrapBasic } from '../wrappers.js'; +import { COMPONENT_NAME, FS_CHANGED_EVENT, VIEWPORT_CHANGED_EVENT } from '../../const.js'; +import { isMounted, mountPromise, mountError } from '../../signals/mounting.js'; +import { getStateFromStorage, setState } from '../../signals/state.js'; +import { safeAreaInsets } from '../../signals/safe-area-insets.js'; +import { contentSafeAreaInsets } from '../../signals/content-safe-area-insets.js'; +import { requestContentSafeAreaInsets } from '../static/requestContentSafeAreaInsets.js'; +import { requestSafeAreaInsets } from '../static/requestSafeAreaInsets.js'; +import { requestViewport } from '../static/requestViewport.js'; +import type { State } from '../../types.js'; + +import { onFullscreenChanged, onViewportChanged } from './shared.js'; + +/** + * Mounts the Viewport component. + * @throws {TypedError} ERR_UNKNOWN_ENV + * @throws {TypedError} ERR_NOT_INITIALIZED + * @throws {TypedError} ERR_ALREADY_MOUNTING + * @example + * if (mount.isAvailable() && !isMounting()) { + * await mount(); + * } + */ +export const mount = wrapBasic('mount', createMountFn( + COMPONENT_NAME, + (options) => { + return CancelablePromise.resolve().then(async () => { + // Try to restore the state using the storage. + const s = isPageReload() && getStateFromStorage(); + if (s) { + return s; + } + + // Request all insets. + const [ + retrievedSafeAreaInsets, + retrievedContentSafeAreaInsets, + ] = await CancelablePromise.all([ + requestSafeAreaInsets.ifAvailable(options) || safeAreaInsets(), + requestContentSafeAreaInsets.ifAvailable(options) || contentSafeAreaInsets(), + ]); + + // If the platform has a stable viewport, it means we could use the window global object + // properties. + const lp = retrieveLaunchParams(); + const shared = { + contentSafeAreaInsets: retrievedContentSafeAreaInsets, + isFullscreen: !!lp.fullscreen, + safeAreaInsets: retrievedSafeAreaInsets, + }; + if (['macos', 'tdesktop', 'unigram', 'webk', 'weba', 'web'].includes(lp.platform)) { + const w = window; + return { + ...shared, + height: w.innerHeight, + isExpanded: true, + stableHeight: w.innerHeight, + width: w.innerWidth, + }; + } + + // We were unable to retrieve data locally. In this case, we are + // sending a request returning the viewport information. + return requestViewport(options).then(data => ({ + ...shared, + height: data.height, + isExpanded: data.isExpanded, + stableHeight: data.isStable ? data.height : 0, + width: data.width, + })); + }); + }, + (result) => { + on(VIEWPORT_CHANGED_EVENT, onViewportChanged); + on(FS_CHANGED_EVENT, onFullscreenChanged); + setState(result); + }, + isMounted, + mountPromise, + mountError, +)); diff --git a/packages/sdk/src/scopes/components/viewport/methods/mounting/shared.ts b/packages/sdk/src/scopes/components/viewport/methods/mounting/shared.ts new file mode 100644 index 000000000..dda231e6d --- /dev/null +++ b/packages/sdk/src/scopes/components/viewport/methods/mounting/shared.ts @@ -0,0 +1,18 @@ +import type { EventListener } from '@telegram-apps/bridge'; + +import { isFullscreen } from '../../signals/fullscreen.js'; +import { setState } from '../../signals/state.js'; + +export const onViewportChanged: EventListener<'viewport_changed'> = (data) => { + const { height } = data; + setState({ + isExpanded: data.is_expanded, + height, + width: data.width, + stableHeight: data.is_state_stable ? height : undefined, + }); +}; + +export const onFullscreenChanged: EventListener<'fullscreen_changed'> = (data) => { + isFullscreen.set(data.is_fullscreen); +}; diff --git a/packages/sdk/src/scopes/components/viewport/methods/mounting/unmount.ts b/packages/sdk/src/scopes/components/viewport/methods/mounting/unmount.ts new file mode 100644 index 000000000..346583cc3 --- /dev/null +++ b/packages/sdk/src/scopes/components/viewport/methods/mounting/unmount.ts @@ -0,0 +1,24 @@ +import { off } from '@telegram-apps/bridge'; + +import { FS_CHANGED_EVENT, VIEWPORT_CHANGED_EVENT } from '../../const.js'; +import { isMounted, mountPromise } from '../../signals/mounting.js'; + +import { onFullscreenChanged, onViewportChanged } from './shared.js'; + +/** + * Unmounts the Viewport. + */ +export function unmount(): void { + // Cancel mount promise. + const promise = mountPromise(); + promise && promise.cancel(); + + // TODO: Cancel all promises? + + // Remove event listeners. + off(VIEWPORT_CHANGED_EVENT, onViewportChanged); + off(FS_CHANGED_EVENT, onFullscreenChanged); + + // Drop the mount flag. + isMounted.set(false); +} \ No newline at end of file diff --git a/packages/sdk/src/scopes/components/viewport/methods/static/requestContentSafeAreaInsets.ts b/packages/sdk/src/scopes/components/viewport/methods/static/requestContentSafeAreaInsets.ts new file mode 100644 index 000000000..8d77d43ab --- /dev/null +++ b/packages/sdk/src/scopes/components/viewport/methods/static/requestContentSafeAreaInsets.ts @@ -0,0 +1,24 @@ +import type { AsyncOptions } from '@telegram-apps/bridge'; + +import { wrapSafe } from '@/scopes/toolkit/wrapSafe.js'; +import { request } from '@/scopes/globals.js'; + +import { REQUEST_CONTENT_SAFE_AREA_METHOD } from '../../const.js'; + +/** + * Requests the actual viewport content safe area insets information. + * @param options - request options. + * @throws {TypedError} ERR_UNKNOWN_ENV + * @throws {TypedError} ERR_NOT_INITIALIZED + * @throws {TypedError} ERR_NOT_SUPPORTED + * @since Mini Apps v8.0 + * @example + * if (requestContentSafeAreaInsets.isAvailable()) { + * const insets = await requestContentSafeAreaInsets(); + * } + */ +export const requestContentSafeAreaInsets = wrapSafe( + 'requestContentSafeAreaInsets', + (options?: AsyncOptions) => request(REQUEST_CONTENT_SAFE_AREA_METHOD, 'content_safe_area_changed', options), + { isSupported: REQUEST_CONTENT_SAFE_AREA_METHOD }, +); diff --git a/packages/sdk/src/scopes/components/viewport/methods/static/requestSafeAreaInsets.ts b/packages/sdk/src/scopes/components/viewport/methods/static/requestSafeAreaInsets.ts new file mode 100644 index 000000000..e9db29cc4 --- /dev/null +++ b/packages/sdk/src/scopes/components/viewport/methods/static/requestSafeAreaInsets.ts @@ -0,0 +1,24 @@ +import type { AsyncOptions } from '@telegram-apps/bridge'; + +import { wrapSafe } from '@/scopes/toolkit/wrapSafe.js'; +import { request } from '@/scopes/globals.js'; + +import { REQUEST_SAFE_AREA_METHOD } from '../../const.js'; + +/** + * Requests the actual viewport safe area insets information. + * @param options - request options. + * @throws {TypedError} ERR_UNKNOWN_ENV + * @throws {TypedError} ERR_NOT_INITIALIZED + * @throws {TypedError} ERR_NOT_SUPPORTED + * @since Mini Apps v8.0 + * @example + * if (requestSafeAreaInsets.isAvailable()) { + * const insets = await requestSafeAreaInsets(); + * } + */ +export const requestSafeAreaInsets = wrapSafe( + 'requestSafeAreaInsets', + (options?: AsyncOptions) => request(REQUEST_SAFE_AREA_METHOD, 'safe_area_changed', options), + { isSupported: REQUEST_SAFE_AREA_METHOD }, +); \ No newline at end of file diff --git a/packages/sdk/src/scopes/components/viewport/requestViewport.ts b/packages/sdk/src/scopes/components/viewport/methods/static/requestViewport.ts similarity index 65% rename from packages/sdk/src/scopes/components/viewport/requestViewport.ts rename to packages/sdk/src/scopes/components/viewport/methods/static/requestViewport.ts index dbcf97c34..712e24ce8 100644 --- a/packages/sdk/src/scopes/components/viewport/requestViewport.ts +++ b/packages/sdk/src/scopes/components/viewport/methods/static/requestViewport.ts @@ -1,7 +1,4 @@ -import type { - ExecuteWithOptions, - CancelablePromise, -} from '@telegram-apps/bridge'; +import type { CancelablePromise, AsyncOptions } from '@telegram-apps/bridge'; import { request as _request } from '@/scopes/globals.js'; @@ -16,13 +13,11 @@ export interface RequestViewportResult { * Requests viewport actual information from the Telegram application. * @param options - request options. * @example - * const viewport = await request({ - * timeout: 1000 - * }); + * if (requestViewport.isAvailable()) { + * const viewport = await requestViewport(); + * } */ -export function requestViewport( - options?: ExecuteWithOptions, -): CancelablePromise { +export function requestViewport(options?: AsyncOptions): CancelablePromise { return _request('web_app_request_viewport', 'viewport_changed', options).then(r => ({ height: r.height, width: r.width, diff --git a/packages/sdk/src/scopes/components/viewport/methods/wrappers.ts b/packages/sdk/src/scopes/components/viewport/methods/wrappers.ts new file mode 100644 index 000000000..3a292b745 --- /dev/null +++ b/packages/sdk/src/scopes/components/viewport/methods/wrappers.ts @@ -0,0 +1,9 @@ +import { createWrapBasic } from '@/scopes/toolkit/createWrapBasic.js'; +import { createWrapMounted } from '@/scopes/toolkit/createWrapMounted.js'; + +import { isMounted } from '../signals/mounting.js'; +import { COMPONENT_NAME } from '../const.js'; + +export const wrapBasic = createWrapBasic(COMPONENT_NAME); + +export const wrapMounted = createWrapMounted(COMPONENT_NAME, isMounted); \ No newline at end of file diff --git a/packages/sdk/src/scopes/components/viewport/signals.ts b/packages/sdk/src/scopes/components/viewport/signals.ts deleted file mode 100644 index 98567bdf3..000000000 --- a/packages/sdk/src/scopes/components/viewport/signals.ts +++ /dev/null @@ -1,136 +0,0 @@ -import { computed, type Computed, signal } from '@telegram-apps/signals'; -import { CancelablePromise } from '@telegram-apps/toolkit'; - -import type { State } from './types.js'; - -/* USUAL */ - -/** - * Complete component state. - */ -export const state = signal({ - height: 0, - width: 0, - isFullscreen: false, - isExpanded: false, - stableHeight: 0, -}); - -//#region Mount. - -/** - * Signal indicating if the component is currently mounted. - */ -export const isMounted = signal(false); - -/** - * Signal indicating if the component is currently mounting. - */ -export const isMounting = computed(() => !!mountPromise()); - -/** - * Signal containing the error occurred during mount. - */ -export const mountError = signal(undefined); - -/** - * Signal containing the mount process promise. - */ -export const mountPromise = signal | undefined>(); - -//#endregion - -/** - * True if CSS variables are currently bound. - */ -export const isCssVarsBound = signal(false); - -/* COMPUTED */ - -function createStateComputed(key: K): Computed { - return computed(() => state()[key]); -} - -/** - * The current height of the **visible area** of the Mini App. - * - * The application can display just the top part of the Mini App, with its - * lower part remaining outside the screen area. From this position, the user - * can "pull" the Mini App to its maximum height, while the bot can do the same - * by calling `expand` method. As the position of the Mini App changes, the - * current height value of the visible area will be updated in real time. - * - * Please note that the refresh rate of this value is not sufficient to - * smoothly follow the lower border of the window. It should not be used to pin - * interface elements to the bottom of the visible area. It's more appropriate - * to use the value of the `stableHeight` field for this purpose. - * - * @see stableHeight - */ -export const height = createStateComputed('height'); - -/** - * True if the Mini App is expanded to the maximum available height. Otherwise, - * if the Mini App occupies part of the screen and can be expanded to the full - * height using - * `expand` method. - * @see expand - */ -export const isExpanded = createStateComputed('isExpanded'); - -/** - * True if the current viewport height is stable and is not going to change in - * the next moment. - */ -export const isStable = computed(() => { - const s = state(); - return s.height === s.stableHeight; -}); - -/** - * The height of the visible area of the Mini App in its last stable state. - * - * The application can display just the top part of the Mini App, with its - * lower part remaining outside the screen area. From this position, the user - * can "pull" the Mini App to its maximum height, while the application can do - * the same by calling `expand` method. - * - * Unlike the value of `height`, the value of `stableHeight` does not change as - * the position of the Mini App changes with user gestures or during - * animations. The value of `stableHeight` will be updated after all gestures - * and animations are completed and the Mini App reaches its final size. - * - * @see height - */ -export const stableHeight = createStateComputed('stableHeight'); - -/** - * Currently visible area width. - */ -export const width = createStateComputed('width'); - -//#region Fullscreen mode. - -/** - * Signal indicating if the viewport is currently in fullscreen mode. - */ -export const isFullscreen = createStateComputed('isFullscreen'); - -/** - * Signal containing fullscreen request or exit promise. - */ -export const changeFullscreenPromise = signal>(); - -/** - * Signal indicating if the fullscreen mode request is currently in progress. - */ -export const isChangingFullscreen = computed(() => { - return !!changeFullscreenPromise(); -}); - -/** - * Signal containing an error received during the last fullscreen mode request. - */ -export const changeFullscreenError = signal(); - -//#endregion \ No newline at end of file diff --git a/packages/sdk/src/scopes/components/viewport/signals/content-safe-area-insets.ts b/packages/sdk/src/scopes/components/viewport/signals/content-safe-area-insets.ts new file mode 100644 index 000000000..518334e96 --- /dev/null +++ b/packages/sdk/src/scopes/components/viewport/signals/content-safe-area-insets.ts @@ -0,0 +1,14 @@ +import { type Computed, computed } from '@telegram-apps/signals'; +import type { SafeAreaInsets } from '@telegram-apps/bridge'; + +import { signalFromState } from './state.js'; + +function fromState(key: keyof SafeAreaInsets): Computed { + return computed(() => contentSafeAreaInsets()[key]); +} + +export const contentSafeAreaInsets = signalFromState('contentSafeAreaInsets'); +export const contentSafeAreaInsetBottom = fromState('bottom'); +export const contentSafeAreaInsetLeft = fromState('left'); +export const contentSafeAreaInsetRight = fromState('right'); +export const contentSafeAreaInsetTop = fromState('top'); \ No newline at end of file diff --git a/packages/sdk/src/scopes/components/viewport/signals/css-vars.ts b/packages/sdk/src/scopes/components/viewport/signals/css-vars.ts new file mode 100644 index 000000000..bed6549c6 --- /dev/null +++ b/packages/sdk/src/scopes/components/viewport/signals/css-vars.ts @@ -0,0 +1,6 @@ +import { signal } from '@telegram-apps/signals'; + +/** + * True if CSS variables are currently bound. + */ +export const isCssVarsBound = signal(false); \ No newline at end of file diff --git a/packages/sdk/src/scopes/components/viewport/signals/dimensions.ts b/packages/sdk/src/scopes/components/viewport/signals/dimensions.ts new file mode 100644 index 000000000..0e01bfe63 --- /dev/null +++ b/packages/sdk/src/scopes/components/viewport/signals/dimensions.ts @@ -0,0 +1,41 @@ +import { signalFromState } from './state.js'; + +/** + * Signal containing the current height of the **visible area** of the Mini App. + * + * The application can display just the top part of the Mini App, with its + * lower part remaining outside the screen area. From this position, the user + * can "pull" the Mini App to its maximum height, while the bot can do the same + * by calling `expand` method. As the position of the Mini App changes, the + * current height value of the visible area will be updated in real time. + * + * Please note that the refresh rate of this value is not sufficient to + * smoothly follow the lower border of the window. It should not be used to pin + * interface elements to the bottom of the visible area. It's more appropriate + * to use the value of the `stableHeight` field for this purpose. + * + * @see stableHeight + */ +export const height = signalFromState('height'); + +/** + * Signal containing the height of the visible area of the Mini App in its last stable state. + * + * The application can display just the top part of the Mini App, with its + * lower part remaining outside the screen area. From this position, the user + * can "pull" the Mini App to its maximum height, while the application can do + * the same by calling `expand` method. + * + * Unlike the value of `height`, the value of `stableHeight` does not change as + * the position of the Mini App changes with user gestures or during + * animations. The value of `stableHeight` will be updated after all gestures + * and animations are completed and the Mini App reaches its final size. + * + * @see height + */ +export const stableHeight = signalFromState('stableHeight'); + +/** + * Signal containing the currently visible area width. + */ +export const width = signalFromState('width'); diff --git a/packages/sdk/src/scopes/components/viewport/signals/flags.ts b/packages/sdk/src/scopes/components/viewport/signals/flags.ts new file mode 100644 index 000000000..8067da1b4 --- /dev/null +++ b/packages/sdk/src/scopes/components/viewport/signals/flags.ts @@ -0,0 +1,18 @@ +import { computed } from '@telegram-apps/signals'; + +import { signalFromState } from './state.js'; +import { height, stableHeight } from './dimensions.js'; + +/** + * Signal indicating if the Mini App is expanded to the maximum available height. Otherwise, + * if the Mini App occupies part of the screen and can be expanded to the full + * height using `expand` method. + * @see expand + */ +export const isExpanded = signalFromState('isExpanded'); + +/** + * Signal indicating if the current viewport height is stable and is not going to change in + * the next moment. + */ +export const isStable = computed(() => height() === stableHeight()); \ No newline at end of file diff --git a/packages/sdk/src/scopes/components/viewport/signals/fullscreen.ts b/packages/sdk/src/scopes/components/viewport/signals/fullscreen.ts new file mode 100644 index 000000000..218f6839c --- /dev/null +++ b/packages/sdk/src/scopes/components/viewport/signals/fullscreen.ts @@ -0,0 +1,26 @@ +import { computed, signal } from '@telegram-apps/signals'; +import type { CancelablePromise } from '@telegram-apps/bridge'; + +import { signalFromState } from './state.js'; + +/** + * Signal indicating if the viewport is currently in fullscreen mode. + */ +export const isFullscreen = signalFromState('isFullscreen'); + +/** + * Signal containing fullscreen request or exit promise. + */ +export const changeFullscreenPromise = signal>(); + +/** + * Signal indicating if the fullscreen mode request is currently in progress. + */ +export const isChangingFullscreen = computed(() => { + return !!changeFullscreenPromise(); +}); + +/** + * Signal containing an error received during the last fullscreen mode request. + */ +export const changeFullscreenError = signal(); diff --git a/packages/sdk/src/scopes/components/viewport/signals/mounting.ts b/packages/sdk/src/scopes/components/viewport/signals/mounting.ts new file mode 100644 index 000000000..a740158f6 --- /dev/null +++ b/packages/sdk/src/scopes/components/viewport/signals/mounting.ts @@ -0,0 +1,24 @@ +import { computed, signal } from '@telegram-apps/signals'; +import type { CancelablePromise } from '@telegram-apps/bridge'; + +import { State } from '../types.js'; + +/** + * Signal indicating if the component is currently mounted. + */ +export const isMounted = signal(false); + +/** + * Signal indicating if the component is currently mounting. + */ +export const isMounting = computed(() => !!mountPromise()); + +/** + * Signal containing the error occurred during mount. + */ +export const mountError = signal(undefined); + +/** + * Signal containing the mount process promise. + */ +export const mountPromise = signal | undefined>(); \ No newline at end of file diff --git a/packages/sdk/src/scopes/components/viewport/signals/safe-area-insets.ts b/packages/sdk/src/scopes/components/viewport/signals/safe-area-insets.ts new file mode 100644 index 000000000..15cce499b --- /dev/null +++ b/packages/sdk/src/scopes/components/viewport/signals/safe-area-insets.ts @@ -0,0 +1,14 @@ +import { type Computed, computed } from '@telegram-apps/signals'; +import type { SafeAreaInsets } from '@telegram-apps/bridge'; + +import { signalFromState } from './state.js'; + +function fromState(key: keyof SafeAreaInsets): Computed { + return computed(() => safeAreaInsets()[key]); +} + +export const safeAreaInsets = signalFromState('safeAreaInsets'); +export const safeAreaInsetBottom = fromState('bottom'); +export const safeAreaInsetLeft = fromState('left'); +export const safeAreaInsetRight = fromState('right'); +export const safeAreaInsetTop = fromState('top'); \ No newline at end of file diff --git a/packages/sdk/src/scopes/components/viewport/signals/state.ts b/packages/sdk/src/scopes/components/viewport/signals/state.ts new file mode 100644 index 000000000..f5c3010e0 --- /dev/null +++ b/packages/sdk/src/scopes/components/viewport/signals/state.ts @@ -0,0 +1,54 @@ +import { computed, type Computed, signal } from '@telegram-apps/signals'; +import { getStorageValue, type SafeAreaInsets, setStorageValue } from '@telegram-apps/bridge'; + +import { removeUndefined } from '@/utils/removeUndefined.js'; + +import { COMPONENT_NAME } from '../const.js'; +import type { State } from '../types.js'; + +const initialInsets: SafeAreaInsets = { + left: 0, + top: 0, + bottom: 0, + right: 0, +}; + +function nonNegative(value: number): number { + return Math.max(value, 0); +} + +/** + * Signal containing the component complete state. + */ +export const state = signal({ + contentSafeAreaInsets: initialInsets, + height: 0, + isExpanded: false, + isFullscreen: false, + safeAreaInsets: initialInsets, + stableHeight: 0, + width: 0, +}); + +export function signalFromState(key: K): Computed { + return computed(() => state()[key]); +} + +export function setState(s: Partial) { + const { height, stableHeight, width } = s; + + state.set({ + ...state(), + ...removeUndefined({ + ...s, + height: height ? nonNegative(height) : undefined, + width: width ? nonNegative(width) : undefined, + stableHeight: stableHeight ? nonNegative(stableHeight) : undefined, + }), + }); + setStorageValue(COMPONENT_NAME, state()); +} + +export function getStateFromStorage() { + return getStorageValue(COMPONENT_NAME); +} diff --git a/packages/sdk/src/scopes/components/viewport/types.ts b/packages/sdk/src/scopes/components/viewport/types.ts index 677bba379..34577af38 100644 --- a/packages/sdk/src/scopes/components/viewport/types.ts +++ b/packages/sdk/src/scopes/components/viewport/types.ts @@ -1,15 +1,29 @@ +import type { SafeAreaInsets } from '@telegram-apps/bridge'; + export interface State { + contentSafeAreaInsets: SafeAreaInsets; height: number; isExpanded: boolean; isFullscreen: boolean; + safeAreaInsets: SafeAreaInsets; stableHeight: number; width: number; } +type SafeAreaInsetCSSVarKey = `safeAreaInset${Capitalize}`; + +export type GetCSSVarNameKey = + | 'width' + | 'height' + | 'stableHeight' + | SafeAreaInsetCSSVarKey + | `content${Capitalize}` + export interface GetCSSVarNameFn { /** - * @param property - viewport property. - * @returns Computed complete CSS variable name. + * @param key - viewport property. + * @returns Computed complete CSS variable name. The CSS variable will only be defined if the + * function returned string non-empty value. */ - (property: 'width' | 'height' | 'stableHeight'): string; + (key: GetCSSVarNameKey): string | null | undefined | false; } diff --git a/packages/sdk/test-utils/reset/resetViewport.ts b/packages/sdk/test-utils/reset/resetViewport.ts index 78b9ef17b..fc1553404 100644 --- a/packages/sdk/test-utils/reset/resetViewport.ts +++ b/packages/sdk/test-utils/reset/resetViewport.ts @@ -1,39 +1,53 @@ import { resetSignal } from '@test-utils/reset/reset.js'; import { - state, - mountError, - isMounted, - isCssVarsBound, + contentSafeAreaInsets, + contentSafeAreaInsetTop, + contentSafeAreaInsetBottom, + contentSafeAreaInsetLeft, + contentSafeAreaInsetRight, +} from '@/scopes/components/viewport/signals/content-safe-area-insets.js'; +import { isCssVarsBound } from '@/scopes/components/viewport/signals/css-vars.js'; +import { height, stableHeight, width } from '@/scopes/components/viewport/signals/dimensions.js'; +import { isExpanded, isStable } from '@/scopes/components/viewport/signals/flags.js'; +import { isMounting, - width, - isExpanded, - height, - stableHeight, - isStable, - isChangingFullscreen, - isFullscreen, - changeFullscreenError, - changeFullscreenPromise, + mountError, mountPromise, -} from '@/scopes/components/viewport/signals.js'; + isMounted, +} from '@/scopes/components/viewport/signals/mounting.js'; +import { + safeAreaInsetBottom, + safeAreaInsetLeft, + safeAreaInsetRight, + safeAreaInsetTop, + safeAreaInsets, +} from '@/scopes/components/viewport/signals/safe-area-insets.js'; +import { state } from '@/scopes/components/viewport/signals/state.js'; + export function resetViewport() { [ - state, - mountError, - isMounted, + contentSafeAreaInsets, + contentSafeAreaInsetTop, + contentSafeAreaInsetBottom, + contentSafeAreaInsetLeft, + contentSafeAreaInsetRight, isCssVarsBound, - isMounting, - width, - isExpanded, height, stableHeight, + width, + isExpanded, isStable, - isChangingFullscreen, - isFullscreen, - changeFullscreenError, - changeFullscreenPromise, + isMounting, + mountError, mountPromise, + isMounted, + safeAreaInsetBottom, + safeAreaInsetLeft, + safeAreaInsetRight, + safeAreaInsetTop, + safeAreaInsets, + state, ].forEach(resetSignal); } \ No newline at end of file From e48dbc1972234f005246d4769211226d9c4ee890 Mon Sep 17 00:00:00 2001 From: Vladislav Kibenko Date: Mon, 2 Dec 2024 23:03:35 +0500 Subject: [PATCH 23/34] fix(bridge/methods): CreateParams -> CreateMethodParams --- packages/bridge/src/methods/types/methods.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/bridge/src/methods/types/methods.ts b/packages/bridge/src/methods/types/methods.ts index 93a35d372..1ce7801c3 100644 --- a/packages/bridge/src/methods/types/methods.ts +++ b/packages/bridge/src/methods/types/methods.ts @@ -298,13 +298,13 @@ export interface Methods { * @since v8.0 * @see https://docs.telegram-mini-apps.com/platform/methods#web-app-request-safe-area */ - web_app_request_safe_area: CreateParams; + web_app_request_safe_area: CreateMethodParams; /** * Requests content safe area of the user's phone. * @since v8.0 * @see https://docs.telegram-mini-apps.com/platform/methods#web-app-request-content-safe-area */ - web_app_request_content_safe_area: CreateParams; + web_app_request_content_safe_area: CreateMethodParams; /** * Requests current theme from Telegram. As a result, Telegram will create `theme_changed` event. * @see https://docs.telegram-mini-apps.com/platform/methods#web-app-request-theme From 721758ffd9a73179035a87369c3d8f98a8a9ea72 Mon Sep 17 00:00:00 2001 From: Vladislav Kibenko Date: Mon, 2 Dec 2024 23:03:50 +0500 Subject: [PATCH 24/34] fix(sdk): remove safe-area component --- packages/sdk/src/index.ts | 1 - .../scopes/components/safe-area/exports.ts | 21 -- .../components/safe-area/exports.variable.ts | 2 - .../components/safe-area/methods.test.ts | 24 -- .../scopes/components/safe-area/methods.ts | 238 ------------------ .../components/safe-area/requestSafeArea.ts | 53 ---- .../scopes/components/safe-area/signals.ts | 50 ---- .../src/scopes/components/safe-area/types.ts | 17 -- 8 files changed, 406 deletions(-) delete mode 100644 packages/sdk/src/scopes/components/safe-area/exports.ts delete mode 100644 packages/sdk/src/scopes/components/safe-area/exports.variable.ts delete mode 100644 packages/sdk/src/scopes/components/safe-area/methods.test.ts delete mode 100644 packages/sdk/src/scopes/components/safe-area/methods.ts delete mode 100644 packages/sdk/src/scopes/components/safe-area/requestSafeArea.ts delete mode 100644 packages/sdk/src/scopes/components/safe-area/signals.ts delete mode 100644 packages/sdk/src/scopes/components/safe-area/types.ts diff --git a/packages/sdk/src/index.ts b/packages/sdk/src/index.ts index b95a3d712..fa7e8e82e 100644 --- a/packages/sdk/src/index.ts +++ b/packages/sdk/src/index.ts @@ -12,7 +12,6 @@ export * from '@/scopes/components/main-button/exports.js'; export * from '@/scopes/components/mini-app/exports.js'; export * from '@/scopes/components/popup/exports.js'; export * from '@/scopes/components/qr-scanner/exports.js'; -export * from '@/scopes/components/safe-area/exports.js'; export * from '@/scopes/components/secondary-button/exports.js'; export * from '@/scopes/components/settings-button/exports.js'; export * from '@/scopes/components/swipe-behavior/exports.js'; diff --git a/packages/sdk/src/scopes/components/safe-area/exports.ts b/packages/sdk/src/scopes/components/safe-area/exports.ts deleted file mode 100644 index 8cbd8c2ad..000000000 --- a/packages/sdk/src/scopes/components/safe-area/exports.ts +++ /dev/null @@ -1,21 +0,0 @@ -export { - bindCssVars as bindSafeAreaCssVars, - isSupported as isSafeAreaSupported, - mount as mountSafeArea, - unmount as unmountSafeArea, -} from './methods.js'; -export { - inset as safeAreaInset, - contentInset as contentSafeAreaInset, - - isCssVarsBound as isSafeAreaCssVarsBound, - isMounted as isSafeAreaMounted, - isMounting as isSafeAreaMounting, - mountError as safeAreaMountError, - state as safeAreaState, -} from './signals.js'; -export type { - GetCSSVarNameFn as SafeAreaGetCSSVarNameFn, - State as SafeAreaState, -} from './types.js'; -export * as safeArea from './exports.variable.js'; \ No newline at end of file diff --git a/packages/sdk/src/scopes/components/safe-area/exports.variable.ts b/packages/sdk/src/scopes/components/safe-area/exports.variable.ts deleted file mode 100644 index 8187e4ee5..000000000 --- a/packages/sdk/src/scopes/components/safe-area/exports.variable.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './methods.js'; -export * from './signals.js'; \ No newline at end of file diff --git a/packages/sdk/src/scopes/components/safe-area/methods.test.ts b/packages/sdk/src/scopes/components/safe-area/methods.test.ts deleted file mode 100644 index 54566d688..000000000 --- a/packages/sdk/src/scopes/components/safe-area/methods.test.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { beforeEach, describe, vi } from 'vitest'; -import { testSafety } from '@test-utils/predefined/testSafety.js'; -import { resetPackageState } from '@test-utils/reset/reset.js'; -import { mockPostEvent } from '@test-utils/mockPostEvent.js'; - -import { mount, bindCssVars } from './methods.js'; -import { isMounted } from './signals.js'; - -beforeEach(() => { - resetPackageState(); - vi.restoreAllMocks(); - mockPostEvent(); -}); - -describe.each([ - ['mount', mount, undefined], - ['bindCssVars', bindCssVars, isMounted], -] as const)('%s', (name, fn, isMounted) => { - testSafety(fn, name, { - component: 'safeArea', - minVersion: '8.0', - isMounted, - }); -}); diff --git a/packages/sdk/src/scopes/components/safe-area/methods.ts b/packages/sdk/src/scopes/components/safe-area/methods.ts deleted file mode 100644 index c1766fb95..000000000 --- a/packages/sdk/src/scopes/components/safe-area/methods.ts +++ /dev/null @@ -1,238 +0,0 @@ -import { - camelToKebab, - deleteCssVar, - getStorageValue, - off, - on, - retrieveLaunchParams, - setCssVar, - setStorageValue, - supports, - type EventListener, - type MethodName, -} from '@telegram-apps/bridge'; -import {isPageReload} from '@telegram-apps/navigation'; -import {computed, type Signal} from '@telegram-apps/signals'; - -import {$version} from '@/scopes/globals.js'; -import {throwCssVarsBound} from '@/scopes/toolkit/throwCssVarsBound.js'; -import {createWrapComplete} from '@/scopes/toolkit/createWrapComplete.js'; -import {createWrapSupported} from '@/scopes/toolkit/createWrapSupported.js'; - -import { - contentInset, - isCssVarsBound, - initialValue, - inset, - isMounted, - state, -} from './signals.js'; -import {GetCSSVarNameFn, State} from './types.js'; -import {SafeAreaInset} from "@telegram-apps/bridge"; -import {createMountFn} from "@/scopes/createMountFn.js"; -import {isMounting, mountError} from "@/scopes/components/safe-area/signals.js"; -import {requestInsets} from "@/scopes/components/safe-area/requestSafeArea.js"; - -type StorageValue = State; - -const REQUEST_METHOD = 'web_app_request_safe_area'; -const REQUEST_CONTENT_METHOD = 'web_app_request_content_safe_area'; -const COMPONENT_NAME = 'safeArea'; - -const isSupportedSchema = { - any: [ - REQUEST_METHOD, - REQUEST_CONTENT_METHOD, - ] as MethodName[], -}; - -/** - * True if the Mini App component is supported. - */ -export const isSupported = computed(() => { - return isSupportedSchema.any.some(method => supports(method, $version())); -}); - -const wrapSupported = createWrapSupported(COMPONENT_NAME, isSupportedSchema); -const wrapComplete = createWrapComplete(COMPONENT_NAME, isMounted, isSupportedSchema); - -/** - * Creates CSS variables connected with the mini app. - * - * Default variables: - * - `--tg-safe-area-inset-top` - * - `--tg-safe-area-inset-bottom` - * - `--tg-safe-area-inset-left` - * - `--tg-safe-area-inset-right` - - * - `--tg-content-safe-area-inset-top` - * - `--tg-content-safe-area-inset-bottom` - * - `--tg-content-safe-area-inset-left` - * - `--tg-content-safe-area-inset-right` - * - * Variables are being automatically updated if theme parameters were changed. - * - * @param getCSSVarName - function, returning complete CSS variable name for the specified - * mini app key. - * @returns Function to stop updating variables. - * @throws {TypedError} ERR_UNKNOWN_ENV - * @throws {TypedError} ERR_VARS_ALREADY_BOUND - * @throws {TypedError} ERR_NOT_MOUNTED - * @throws {TypedError} ERR_NOT_INITIALIZED - * @example Using no arguments - * if (bindCssVars.isAvailable()) { - * bindCssVars(); - * } - * @example Using custom CSS vars generator - * if (bindCssVars.isAvailable()) { - * bindCssVars((component, property) => `--my-prefix-${component}-${property}`); - * } - */ -export const bindCssVars = wrapComplete( - 'bindCssVars', - (getCSSVarName?: GetCSSVarNameFn): VoidFunction => { - isCssVarsBound() && throwCssVarsBound(); - - type Component = "safeArea" | "contentSafeArea"; - const props = ['top', 'bottom', 'left', 'right'] as const; - - getCSSVarName ||= (component, prop) => `--tg-${camelToKebab(component)}-${camelToKebab(prop)}`; - - function actualize(component: Component): void { - const fn = component === "safeArea" ? inset : contentInset; - props.forEach(prop => { - setCssVar(getCSSVarName!(component, prop), `${fn()[prop]}px`); - }); - } - - const actualizeSA = () => actualize("safeArea"); - const actualizeCSA = () => actualize("contentSafeArea"); - - actualizeSA(); - actualizeCSA(); - inset.sub(actualizeSA); - contentInset.sub(actualizeCSA); - isCssVarsBound.set(true); - - return () => { - props.forEach(deleteCssVar); - inset.unsub(actualizeSA); - contentInset.unsub(actualizeCSA); - isCssVarsBound.set(false); - }; - }, -); - -/** - * Mounts the component. - * - * This function restores the component state and is automatically saving it in the local storage - * if it changed. - * - * @since Mini Apps v8.0 - * @throws {TypedError} ERR_UNKNOWN_ENV - * @throws {TypedError} ERR_NOT_INITIALIZED - * @throws {TypedError} ERR_NOT_SUPPORTED - * @example - * if (mount.isAvailable()) { - * mount(); - * } - */ -export const mount = wrapSupported( - 'mount', - createMountFn( - COMPONENT_NAME, - options => { - if (isMounted()) return state(); - - // Try to restore the state using the storage. - // TODO: do not restore if orientation changed - if (isPageReload()) { - const storedState = getStorageValue(COMPONENT_NAME); - if (storedState) { - return storedState; - } - } - - // If the platform has a stable viewport, it means we could use the window global object - // properties. - if ([ - 'macos', - 'tdesktop', - 'unigram', - 'webk', - 'weba', - 'web', - ].includes(retrieveLaunchParams().platform)) { - return { - inset: initialValue, - contentInset: initialValue - }; - } - - // We were unable to retrieve data locally. In this case, we are sending - // a request returning the viewport information. - options.timeout ||= 1000; - return requestInsets(options); - }, - result => { - on('safe_area_changed', onSafeAreaChanged); - on('content_safe_area_changed', onContentSafeAreaChanged); - setGlobalState(result); - }, - {isMounted, isMounting, mountError}, - ), -); - -const onSafeAreaChanged: EventListener<'safe_area_changed'> = (data) => { - setSafeAreaState(data); -}; - -const onContentSafeAreaChanged: EventListener<'content_safe_area_changed'> = (data) => { - setContentSafeAreaState(data); -}; - -type methodName = 'inset' | 'contentInset'; - -function setSafeAreaState(safeArea: SafeAreaInset) { - setState('inset', inset, safeArea); -} - -function setContentSafeAreaState(safeArea: SafeAreaInset) { - setState('contentInset', contentInset, safeArea); -} - -function setState(fnName: methodName, fn: Signal, s: SafeAreaInset) { - fn.set({ - top: truncate(s.top), - bottom: truncate(s.bottom), - left: truncate(s.left), - right: truncate(s.right), - }); - setStorageValue(COMPONENT_NAME, { - inset: fnName === 'inset' ? fn() : state().inset, - contentInset: fnName === 'contentInset' ? fn() : state().contentInset, - }); -} - -function setGlobalState(state: State) { - setSafeAreaState(state.inset); - setContentSafeAreaState(state.contentInset); -} - -/** - * Formats value to make it stay in bounds [0, +Inf). - * @param value - value to format. - */ -function truncate(value: number): number { - return Math.max(value, 0); -} - -/** - * Unmounts the component, removing the listeners, saving the component state in the local storage. - */ -export function unmount(): void { - off('safe_area_changed', onSafeAreaChanged); - off('content_safe_area_changed', onContentSafeAreaChanged); - isMounted.set(false); -} diff --git a/packages/sdk/src/scopes/components/safe-area/requestSafeArea.ts b/packages/sdk/src/scopes/components/safe-area/requestSafeArea.ts deleted file mode 100644 index b52f5a0b9..000000000 --- a/packages/sdk/src/scopes/components/safe-area/requestSafeArea.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { - ExecuteWithOptions, - CancelablePromise, - SafeAreaInset, -} from '@telegram-apps/bridge'; - -import {request as _request} from '@/scopes/globals.js'; -import {State} from "@/scopes/components/safe-area/types.js"; - -export function requestInsets( - options?: ExecuteWithOptions -): CancelablePromise { - // @ts-expect-error incorrect linting here - return CancelablePromise.all([ - requestSafeArea(options), - requestContentSafeArea(options) - ]).then(([safeAreaInset, contentSafeAreaInset]) => { - return new CancelablePromise((resolve) => { - resolve({ - inset: safeAreaInset, - contentInset: contentSafeAreaInset - }); - }); - }); -} - -/** - * Requests safe area actual information from the Telegram application. - * @param options - request options. - * @example - * const viewport = await request({ - * timeout: 1000 - * }); - */ -export function requestSafeArea( - options?: ExecuteWithOptions, -): CancelablePromise { - return _request('web_app_request_safe_area', 'safe_area_changed', options); -} - -/** - * Requests content safe area actual information from the Telegram application. - * @param options - request options. - * @example - * const viewport = await request({ - * timeout: 1000 - * }); - */ -export function requestContentSafeArea( - options?: ExecuteWithOptions, -): CancelablePromise { - return _request('web_app_request_content_safe_area', 'content_safe_area_changed', options); -} \ No newline at end of file diff --git a/packages/sdk/src/scopes/components/safe-area/signals.ts b/packages/sdk/src/scopes/components/safe-area/signals.ts deleted file mode 100644 index 91f0e6b99..000000000 --- a/packages/sdk/src/scopes/components/safe-area/signals.ts +++ /dev/null @@ -1,50 +0,0 @@ -import {computed, signal} from '@telegram-apps/signals'; - -import {SafeAreaInset} from "@telegram-apps/bridge"; -import {State} from "@/scopes/components/safe-area/types.js"; - -export const initialValue: SafeAreaInset = { - top: 0, - bottom: 0, - left: 0, - right: 0, -} - -/** - * Signal with SafeAreaInset object state. - */ -export const inset = signal(initialValue); - -/** - * Signal with ContentSafeAreaInset object state. - */ -export const contentInset = signal(initialValue); - -/** - * True if the component is currently mounted. - */ -export const isMounted = signal(false); - -/** - * True if CSS variables are currently bound. - */ -export const isCssVarsBound = signal(false); - -/** - * True if the component is currently mounting. - */ -export const isMounting = signal(false); - -/** - * Error occurred while mounting the component. - */ -export const mountError = signal(undefined); - - -/** - * Complete component state. - */ -export const state = computed(() => ({ - inset: inset(), - contentInset: contentInset(), -})); \ No newline at end of file diff --git a/packages/sdk/src/scopes/components/safe-area/types.ts b/packages/sdk/src/scopes/components/safe-area/types.ts deleted file mode 100644 index e6c0e4352..000000000 --- a/packages/sdk/src/scopes/components/safe-area/types.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { SafeAreaInset } from "@telegram-apps/bridge"; - -export interface State { - inset: SafeAreaInset; - contentInset: SafeAreaInset; -} - -type Component = "safeArea" | "contentSafeArea"; - -export interface GetCSSVarNameFn { - /** - * @param component - safe area or content safe area component - * @param property - safe area insets property - * @returns Computed complete CSS variable name. - */ - (component: Component, property: Extract): string; -} \ No newline at end of file From 269c107758e31c61f1adaebe8c07acba8cb857b9 Mon Sep 17 00:00:00 2001 From: Vladislav Kibenko Date: Mon, 2 Dec 2024 23:08:54 +0500 Subject: [PATCH 25/34] refactor(sdk/viewport): actualize bindCssVars description --- .../components/viewport/methods/bindCssVars.ts | 12 ++++++++++-- packages/sdk/src/scopes/components/viewport/types.ts | 9 +-------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/packages/sdk/src/scopes/components/viewport/methods/bindCssVars.ts b/packages/sdk/src/scopes/components/viewport/methods/bindCssVars.ts index d72ffc468..dcc3cbbe1 100644 --- a/packages/sdk/src/scopes/components/viewport/methods/bindCssVars.ts +++ b/packages/sdk/src/scopes/components/viewport/methods/bindCssVars.ts @@ -32,11 +32,19 @@ import type { GetCSSVarNameFn } from '../types.js'; * - `--tg-viewport-height` * - `--tg-viewport-width` * - `--tg-viewport-stable-height` + * - `--tg-viewport-content-safe-area-inset-top` + * - `--tg-viewport-content-safe-area-inset-bottom` + * - `--tg-viewport-content-safe-area-inset-left` + * - `--tg-viewport-content-safe-area-inset-right` + * - `--tg-viewport-safe-area-inset-top` + * - `--tg-viewport-safe-area-inset-bottom` + * - `--tg-viewport-safe-area-inset-left` + * - `--tg-viewport-safe-area-inset-right` * * Variables are being automatically updated if the viewport was changed. * - * @param getCSSVarName - function, returning complete CSS variable name for - * the specified viewport property. + * @param getCSSVarName - function, returning computed complete CSS variable name. The CSS + * variable will only be defined if the function returned non-empty string value. * @returns Function to stop updating variables. * @throws {TypedError} ERR_UNKNOWN_ENV * @throws {TypedError} ERR_VARS_ALREADY_BOUND diff --git a/packages/sdk/src/scopes/components/viewport/types.ts b/packages/sdk/src/scopes/components/viewport/types.ts index 34577af38..3532e7d24 100644 --- a/packages/sdk/src/scopes/components/viewport/types.ts +++ b/packages/sdk/src/scopes/components/viewport/types.ts @@ -19,11 +19,4 @@ export type GetCSSVarNameKey = | SafeAreaInsetCSSVarKey | `content${Capitalize}` -export interface GetCSSVarNameFn { - /** - * @param key - viewport property. - * @returns Computed complete CSS variable name. The CSS variable will only be defined if the - * function returned string non-empty value. - */ - (key: GetCSSVarNameKey): string | null | undefined | false; -} +export type GetCSSVarNameFn = (key: GetCSSVarNameKey) => string | null | undefined | false; From 9868740bf38bddae29cf3f819303cca1999ab12b Mon Sep 17 00:00:00 2001 From: Vladislav Kibenko Date: Mon, 2 Dec 2024 23:11:24 +0500 Subject: [PATCH 26/34] fix(sdk/biometry): fix invalid mount function --- packages/sdk/src/scopes/components/biometry/methods.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/sdk/src/scopes/components/biometry/methods.ts b/packages/sdk/src/scopes/components/biometry/methods.ts index 063f494d9..ed1566827 100644 --- a/packages/sdk/src/scopes/components/biometry/methods.ts +++ b/packages/sdk/src/scopes/components/biometry/methods.ts @@ -210,7 +210,6 @@ export const mount = wrapBasic('mount', createMountFn( setState(result); }, isMounted, - state, mountPromise, mountError, )); From 9b710753bd2b2ea538e633be61d16936e9d86ae9 Mon Sep 17 00:00:00 2001 From: Vladislav Kibenko Date: Mon, 2 Dec 2024 23:21:38 +0500 Subject: [PATCH 27/34] docs(sdk/viewport): add safe area docs --- .../2-x/components/safe-area.md | 229 ------------------ .../2-x/components/viewport.md | 61 +++++ 2 files changed, 61 insertions(+), 229 deletions(-) delete mode 100644 apps/docs/packages/telegram-apps-sdk/2-x/components/safe-area.md diff --git a/apps/docs/packages/telegram-apps-sdk/2-x/components/safe-area.md b/apps/docs/packages/telegram-apps-sdk/2-x/components/safe-area.md deleted file mode 100644 index 22bdb4afd..000000000 --- a/apps/docs/packages/telegram-apps-sdk/2-x/components/safe-area.md +++ /dev/null @@ -1,229 +0,0 @@ -# Safe Area - -The 💠[component](../scopes.md) responsible for the Telegram Mini -Apps [safe area](../../../../platform/safe-area.md). - -## Mounting - -Before using the component, it is necessary to mount it to work with properly configured properties. -To do so, use the `mount` method. It will update the `isMounted` signal property. - -::: code-group - -```ts [Variable] -import { safeArea } from '@telegram-apps/sdk'; - -if (safeArea.mount.isAvailable()) { - safeArea.mount(); - safeArea.isMounted(); // true -} -``` - -```ts [Functions] -import { - mountSafeArea, - isSafeAreaMounted, -} from '@telegram-apps/sdk'; - -if (mountSafeArea.isAvailable()) { - mountSafeArea(); - isSafeAreaMounted(); // true -} -``` - -::: - -To unmount, use the `unmount` method: - -::: code-group - -```ts [Variable] -safeArea.unmount(); -safeArea.isMounted(); // false -``` - -```ts [Functions] -import { - unmountSafeArea, - isSafeAreaMounted, -} from '@telegram-apps/sdk'; - -unmountSafeArea(); -isSafeAreaMounted(); // false -``` - -::: - -## Binding CSS Variables - -To expose the `safeArea` properties via CSS variables, use the `bindCssVars` method. -The `isCssVarsBound` signal property is updated after the method is called. - -This method optionally accepts a function that transforms the values `top`, `bottom`, `left` -and `right` into CSS variable names. By default, values are converted to kebab case with the -prefix `--tg-safe-area-` and `--tg-content-safe-area`. - -::: code-group - -```ts [Variable] -import { safeArea } from '@telegram-apps/sdk'; - -if (safeArea.bindCssVars.isAvailable()) { - safeArea.bindCssVars(); - // Creates CSS variables like: - // --tg-safe-area-inset-top: 0px; - // --tg-safe-area-inset-bottom: 30px; - // --tg-safe-area-inset-left: 40px; - // --tg-safe-area-inset-right: 40px; - - // --tg-content-safe-area-inset-top: 40px; - // --tg-content-safe-area-inset-bottom: 0px; - // --tg-content-safe-area-inset-left: 0px; - // --tg-content-safe-area-inset-right: 0px; - - safeArea.bindCssVars((component, property) => `--my-prefix-${component}-${property}`); - // Creates CSS variables like: - // --my-prefix-safeArea-top: 0px; - // --my-prefix-safeArea-bottom: 30px; - // --my-prefix-safeArea-bottom: 40px; - // --my-prefix-safeArea-right: 40px; - - // --my-prefix-contentSafeArea-top: 40px; - // --my-prefix-contentSafeArea-bottom: 0px; - // --my-prefix-contentSafeArea-left: 0px; - // --my-prefix-contentSafeArea-right: 0px; - - safeArea.isCssVarsBound(); // true -} -``` - -```ts [Functions] -import { - bindSafeAreaCssVars, - isSafeAreaCssVarsBound, -} from '@telegram-apps/sdk'; - -if (bindSafeAreaCssVars.isAvailable()) { - bindSafeAreaCssVars(); - // Creates CSS variables like: - // --tg-safe-area-inset-top: 0px; - // --tg-safe-area-inset-bottom: 30px; - // --tg-safe-area-inset-left: 40px; - // --tg-safe-area-inset-right: 40px; - - // --tg-content-safe-area-inset-top: 40px; - // --tg-content-safe-area-inset-bottom: 0px; - // --tg-content-safe-area-inset-left: 0px; - // --tg-content-safe-area-inset-right: 0px; - - bindSafeAreaCssVars((component, property) => `--my-prefix-${component}-${property}`); - // Creates CSS variables like: - // --my-prefix-safeArea-top: 0px; - // --my-prefix-safeArea-bottom: 30px; - // --my-prefix-safeArea-bottom: 40px; - // --my-prefix-safeArea-right: 40px; - - // --my-prefix-contentSafeArea-top: 40px; - // --my-prefix-contentSafeArea-bottom: 0px; - // --my-prefix-contentSafeArea-left: 0px; - // --my-prefix-contentSafeArea-right: 0px; - - isSafeAreaCssVarsBound(); // true -} -``` - -::: - -## Types - -### SafeAreaInset - -Type representing `safe area` and `content safe area` paddings: - -```ts [Variable] -type SafeAreaInset = { - top: number, - bottom: number, - left: number, - right: number -}; -``` - -### State - -Type representing `full state` of `safe area`: - -```ts [Variable] -type State = { - inset: SafeAreaInset, - contentSafeArea: SafeAreaInset -}; -``` - -## Signals - -This section provides a complete list of signals related to the init data. - -## `inset` - -Return type: `SafeAreaInset` - -To get safeArea state, use the `inset` method. - -::: code-group - -```ts [Variable] -safeArea.inset(); // { top: 0, bottom: 30, left: 40, right: 40 } -``` - -```ts [Functions] -import { safeAreaInset } from '@telegram-apps/sdk'; - -safeAreaInset(); // { top: 0, bottom: 30, left: 40, right: 40 } -``` - -::: - -## `contentInset` - -To get contentSafeArea state, use the `contentInset` method. - -::: code-group - -```ts [Variable] -safeArea.contentInset(); // { top: 40, bottom: 0, left: 0, right: 0 } -``` - -```ts [Functions] -import { contentSafeAreaInset } from '@telegram-apps/sdk'; - -contentSafeAreaInset(); // { top: 40, bottom: 0, left: 0, right: 0 } -``` - -::: - -## `state` - -To get full safe area state, use the `state` method. - -::: code-group - -```ts [Variable] -safeArea.state(); -// { -// inset: { top: 0, bottom: 30, left: 40, right: 40 } -// contentInset: { top: 40, bottom: 0, left: 0, right: 0 } -// } -``` - -```ts [Functions] -import { safeAreaState } from '@telegram-apps/sdk'; - -safeAreaState(); -// { -// inset: { top: 0, bottom: 30, left: 40, right: 40 } -// contentInset: { top: 40, bottom: 0, left: 0, right: 0 } -// } -``` - -::: \ No newline at end of file diff --git a/apps/docs/packages/telegram-apps-sdk/2-x/components/viewport.md b/apps/docs/packages/telegram-apps-sdk/2-x/components/viewport.md index 5828c08af..d72a71013 100644 --- a/apps/docs/packages/telegram-apps-sdk/2-x/components/viewport.md +++ b/apps/docs/packages/telegram-apps-sdk/2-x/components/viewport.md @@ -176,4 +176,65 @@ if (exitFullscreen.isAvailable()) { } ``` +::: + +## Safe Area Insets + +The viewport component offers access to two types of insets: + +- **Safe area insets** +- **Content safe area insets** + +For more details on the differences between these inset types, visit the +[**Viewport**](../../../../platform/viewport.md) page. + +The component provides access to these insets through the following signals: + +::: code-group + +```ts [Variable] +// Objects with numeric properties "top", "bottom", "left" and "right". +viewport.safeAreaInsets(); +viewport.contentSafeAreaInsets(); + +// Numeric values. +viewport.safeAreaInsetTop(); +viewport.safeAreaInsetBottom(); +viewport.safeAreaInsetLeft(); +viewport.safeAreaInsetRight(); +viewport.contentSafeAreaInsetTop(); +viewport.contentSafeAreaInsetBottom(); +viewport.contentSafeAreaInsetLeft(); +viewport.contentSafeAreaInsetRight(); +``` + +```ts [Functions] +import { + viewportSafeAreaInsets, + viewportSafeAreaInsetTop, + viewportSafeAreaInsetBottom, + viewportSafeAreaInsetLeft, + viewportSafeAreaInsetRight, + viewportContentSafeAreaInsets, + viewportContentSafeAreaInsetTop, + viewportContentSafeAreaInsetBottom, + viewportContentSafeAreaInsetLeft, + viewportContentSafeAreaInsetRight, +} from '@telegram-apps/sdk'; + +// Objects with numeric properties "top", "bottom", "left" and "right". +viewportSafeAreaInsets(); +viewportContentSafeAreaInsets(); + +// Numeric values. +viewportSafeAreaInsetTop(); +viewportSafeAreaInsetBottom(); +viewportSafeAreaInsetLeft(); +viewportSafeAreaInsetRight(); +viewportContentSafeAreaInsetTop(); +viewportContentSafeAreaInsetBottom(); +viewportContentSafeAreaInsetLeft(); +viewportContentSafeAreaInsetRight(); +``` + ::: \ No newline at end of file From 050c1e4d50b7a9324ecab9d2fca2c0fb103158e5 Mon Sep 17 00:00:00 2001 From: Vladislav Kibenko Date: Mon, 2 Dec 2024 23:22:44 +0500 Subject: [PATCH 28/34] chore(docs): rollback linting changes --- apps/docs/platform/events.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/docs/platform/events.md b/apps/docs/platform/events.md index db7c8be78..1d5a39f6a 100644 --- a/apps/docs/platform/events.md +++ b/apps/docs/platform/events.md @@ -31,8 +31,8 @@ interface MessageJSON { Then, lets imagine how we could process an event from Telegram application: ```typescript -window.addEventListener('message', ({data}) => { - const {eventType, eventData} = JSON.parse(data); +window.addEventListener('message', ({ data }) => { + const { eventType, eventData } = JSON.parse(data); console.log(eventType, eventData); }); ``` @@ -84,7 +84,7 @@ package, which greatly eases integration. Here's how to use it: ```ts -import {on} from '@telegram-apps/sdk'; +import { on } from '@telegram-apps/sdk'; // Start listening to "viewport_changed" event. Returned value // is a function, which removes this event listener. From e248dde23f0827ae343aed9d127f1299aad4525a Mon Sep 17 00:00:00 2001 From: Vladislav Kibenko Date: Mon, 2 Dec 2024 23:27:45 +0500 Subject: [PATCH 29/34] docs(events): proofread safe_area_changed and content_safe_area_changed --- apps/docs/platform/events.md | 49 ++++++++++++++++++++---------------- 1 file changed, 27 insertions(+), 22 deletions(-) diff --git a/apps/docs/platform/events.md b/apps/docs/platform/events.md index 1d5a39f6a..61ac136a7 100644 --- a/apps/docs/platform/events.md +++ b/apps/docs/platform/events.md @@ -300,6 +300,21 @@ Application received phone access request status. Parent iframe requested current iframe reload. +### `safe_area_changed` + +This event occurs whenever the safe area changes in the user's Telegram app, such as when the user +switches to landscape mode. + +The **safe area** prevents content from overlapping with system UI elements like notches or +navigation bars. + +| Field | Type | Description | +|--------|----------|--------------------------------------------------------------------------------------------| +| top | `number` | The top inset in pixels, representing the space to avoid at the top of the screen | +| bottom | `number` | The bottom inset in pixels, representing the space to avoid at the bottom of the screen | +| left | `number` | The left inset in pixels, representing the space to avoid on the left side of the screen | +| right | `number` | The right inset in pixels, representing the space to avoid on the right side of the screen | + ### `qr_text_received` Available since: **v6.4** @@ -343,32 +358,22 @@ including switching to night mode). |--------------|--------------------------|--------------------------------------------------------------------------------------------------------| | theme_params | `Record` | Map where the key is a theme stylesheet key and value is the corresponding color in `#RRGGBB` format. | -### `safe_area_changed` +### `content_safe_area_changed` -Occurs whenever [the safe area](safe_area.md) was changed in the user's Telegram app. -For example, user switched to landscape mode. -Safe area helps to avoid overlap with system UI elements like notches or navigation bars. +This event occurs whenever the content safe area changes in the user's Telegram app. For instance, +when a user switches to landscape mode. -| Field | Type | Description | -|--------|----------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------| -| top | `number` | The top inset in pixels, representing the space to avoid at the top of the screen. Also available as the CSS variable var(--tg-safe-area-inset-top). | -| bottom | `number` | The bottom inset in pixels, representing the space to avoid at the bottom of the screen. Also available as the CSS variable var(--tg-safe-area-inset-bottom). | -| left | `number` | The left inset in pixels, representing the space to avoid on the left side of the screen. Also available as the CSS variable var(--tg-safe-area-inset-left). | -| right | `number` | The right inset in pixels, representing the space to avoid on the right side of the screen. Also available as the CSS variable var(--tg-safe-area-inset-right). | +The **safe area** ensures that content does not overlap with Telegram's UI elements. -### `content_safe_area_changed` +The **content safe area** is a subset of the device's safe area, specifically covering Telegram's +UI. -Occurs whenever [the content safe area](safe_area.md) was changed in the user's Telegram app. -For example, user switched to landscape mode. -Safe area helps to avoid overlap with avoiding overlap with Telegram UI elements. -Content Safe Area is inside Device Safe Area and only covers Telegram UI. - -| Field | Type | Description | -|--------|----------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| top | `number` | The top inset in pixels, representing the space to avoid at the top of the content area. Also available as the CSS variable var(--tg-content-safe-area-inset-top). | -| bottom | `number` | The bottom inset in pixels, representing the space to avoid at the bottom of the content area. Also available as the CSS variable var(--tg-content-safe-area-inset-bottom). | -| left | `number` | The left inset in pixels, representing the space to avoid on the left side of the content area. Also available as the CSS variable var(--tg-content-safe-area-inset-left). | -| right | `number` | The right inset in pixels, representing the space to avoid on the right side of the content area. Also available as the CSS variable var(--tg-content-safe-area-inset-right). | +| Field | Type | Description | +|--------|----------|--------------------------------------------------------------------------------------------------| +| top | `number` | The top inset in pixels, representing the space to avoid at the top of the content area | +| bottom | `number` | The bottom inset in pixels, representing the space to avoid at the bottom of the content area | +| left | `number` | The left inset in pixels, representing the space to avoid on the left side of the content area | +| right | `number` | The right inset in pixels, representing the space to avoid on the right side of the content area | ### `viewport_changed` From 7bd733cb1b5e595dfe2eaa798046b531da31dcdd Mon Sep 17 00:00:00 2001 From: Vladislav Kibenko Date: Mon, 2 Dec 2024 23:28:07 +0500 Subject: [PATCH 30/34] chore(bridge/events): reorder events alphabetically --- packages/bridge/src/events/types/events.ts | 28 +++++++++++----------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/packages/bridge/src/events/types/events.ts b/packages/bridge/src/events/types/events.ts index 300887395..247234081 100644 --- a/packages/bridge/src/events/types/events.ts +++ b/packages/bridge/src/events/types/events.ts @@ -124,6 +124,13 @@ export interface Events { */ data?: string | null; }; + /** + * Occurs when the safe area for content changes + * (e.g., due to orientation change or screen adjustments). + * @since Mini Apps v8.0 + * @see https://docs.telegram-mini-apps.com/platform/events#content_safe_area_changed + * */ + content_safe_area_changed: SafeAreaInsets; /** * Custom method invocation completed. * @since v6.9 @@ -223,6 +230,13 @@ export interface Events { * @see https://docs.telegram-mini-apps.com/platform/events#reload-iframe */ reload_iframe: never; + /** + * Occurs whenever the device's safe area insets change + * (e.g., due to orientation change or screen adjustments). + * @since Mini Apps v8.0 + * @see https://docs.telegram-mini-apps.com/platform/events#safe_area_changed + * */ + safe_area_changed: SafeAreaInsets; /** * QR scanner was closed. * @since v6.4 @@ -250,20 +264,6 @@ export interface Events { * @see https://docs.telegram-mini-apps.com/platform/events#settings-button-pressed */ settings_button_pressed: never; - /** - * Occurs whenever the device's safe area insets change - * (e.g., due to orientation change or screen adjustments). - * @since Mini Apps v8.0 - * @see https://docs.telegram-mini-apps.com/platform/events#safe_area_changed - * */ - safe_area_changed: SafeAreaInsets; - /** - * Occurs when the safe area for content changes - * (e.g., due to orientation change or screen adjustments). - * @since Mini Apps v8.0 - * @see https://docs.telegram-mini-apps.com/platform/events#content_safe_area_changed - * */ - content_safe_area_changed: SafeAreaInsets; /** * Occurs whenever theme settings are changed in the user's Telegram app * (including switching to night mode). From 69af2729b17d547b3bb315de4ea31e4efaafb000 Mon Sep 17 00:00:00 2001 From: Vladislav Kibenko Date: Mon, 2 Dec 2024 23:40:58 +0500 Subject: [PATCH 31/34] docs(events,methods): proofread new methods and events. Reorder events --- apps/docs/platform/events.md | 206 +++++++++++----------------------- apps/docs/platform/methods.md | 16 +-- 2 files changed, 77 insertions(+), 145 deletions(-) diff --git a/apps/docs/platform/events.md b/apps/docs/platform/events.md index 61ac136a7..7dcd137be 100644 --- a/apps/docs/platform/events.md +++ b/apps/docs/platform/events.md @@ -119,10 +119,10 @@ Biometry authentication request completed. This event usually occurs in a respon If authentication was successful, the event contains a token from the local secure storage. -| Field | Type | Description | -|--------|------------------------------|------------------------------------------------------------------------------------------------------------| -| status | `'failed'` or `'authorized'` | Authentication status. | -| token | `string` | _Optional_. Token from the local secure storage saved previously. Passed only if `status` is `authorized`. | +| Field | Type | Description | +|--------|----------|------------------------------------------------------------------------------------------------------------| +| status | `string` | Authentication status. Possible values: `failed` or `authorized`. | +| token | `string` | _Optional_. Token from the local secure storage saved previously. Passed only if `status` is `authorized`. | ### `biometry_info_received` @@ -130,14 +130,14 @@ Available since: **v7.2** Biometry settings were received. -| Field | Type | Description | -|------------------|------------------------|-------------------------------------------------------------------------------| -| available | `boolean` | Shows whether biometry is available. | -| access_requested | `boolean` | Shows whether permission to use biometrics has been requested. | -| access_granted | `boolean` | Shows whether permission to use biometrics has been granted. | -| device_id | `string` | A unique device identifier that can be used to match the token to the device. | -| token_saved | `boolean` | Show whether local secure storage contains previously saved token. | -| type | `'face'` or `'finger'` | The type of biometrics currently available on the device. | +| Field | Type | Description | +|------------------|-----------|------------------------------------------------------------------------------------------------| +| available | `boolean` | Shows whether biometry is available. | +| access_requested | `boolean` | Shows whether permission to use biometrics has been requested. | +| access_granted | `boolean` | Shows whether permission to use biometrics has been granted. | +| device_id | `string` | A unique device identifier that can be used to match the token to the device. | +| token_saved | `boolean` | Show whether local secure storage contains previously saved token. | +| type | `string` | The type of biometrics currently available on the device. Possible values: `face` or `finger`. | ### `biometry_token_updated` @@ -145,9 +145,9 @@ Available since: **v7.2** Biometry token was updated. -| Field | Type | Description | -|--------|------------------------|----------------| -| status | `updated` or `removed` | Update status. | +| Field | Type | Description | +|--------|----------|---------------------------------------------------------| +| status | `string` | Update status. Possible values: `updated` or `removed`. | ### `clipboard_text_received` @@ -160,17 +160,36 @@ Telegram application attempted to extract text from clipboard. | req_id | `string` | Passed during the [web_app_read_text_from_clipboard](methods.md#web-app-read-text-from-clipboard) method invocation `req_id` value. | | data | `string` or `null` | _Optional_. Data extracted from the clipboard. The returned value will have the type `string` only in the case, application has access to the clipboard. | +### `content_safe_area_changed` + +Available since: **v8.0** + +This event occurs whenever the content safe area changes in the user's Telegram app. For instance, +when a user switches to landscape mode. + +The **safe area** ensures that content does not overlap with Telegram's UI elements. + +The **content safe area** is a subset of the device's safe area, specifically covering Telegram's +UI. + +| Field | Type | Description | +|--------|----------|--------------------------------------------------------------------------------------------------| +| top | `number` | The top inset in pixels, representing the space to avoid at the top of the content area | +| bottom | `number` | The bottom inset in pixels, representing the space to avoid at the bottom of the content area | +| left | `number` | The left inset in pixels, representing the space to avoid on the left side of the content area | +| right | `number` | The right inset in pixels, representing the space to avoid on the right side of the content area | + ### `custom_method_invoked` Available since: **v6.9** Custom method invocation completed. -| Field | Type | Description | -|--------|-----------|--------------------------------------------------| -| req_id | `string` | Unique identifier of this invocation. | -| result | `unknown` | _Optional_. Method invocation successful result. | -| error | `string` | _Optional_. Method invocation error code. | +| Field | Type | Description | +|--------|-----------|-------------------------------------------| +| req_id | `string` | Unique identifier of this invocation. | +| result | `unknown` | _Optional_. Method invocation result. | +| error | `string` | _Optional_. Method invocation error code. | ### `fullscreen_changed` @@ -178,9 +197,9 @@ Available since: **v8.0** Occurs whenever the mini app enters or exits the fullscreen mode. -| Field | Type | Description | -|---------------|-----------|--------------------------------------| -| is_fullscreen | `boolean` | Is application currently fullscreen. | +| Field | Type | Description | +|---------------|-----------|---------------------------------------------------------------| +| is_fullscreen | `boolean` | Indicates if the application is currently in fullscreen mode. | ### `fullscreen_failed` @@ -188,91 +207,18 @@ Available since: **v8.0** Occurs whenever the mini app enters or exits the fullscreen mode. - - - - - - - - - - - - - - - - - -
FieldTypeDescription
error - string - - Fullscreen mode status error. -
    -
  • - UNSUPPORTED, fullscreen mode is not supported on this device or platform -
  • -
  • - ALREADY_FULLSCREEN, the Mini App is already in fullscreen mode -
  • -
-
+| Field | Type | Description | +|-------|----------|---------------------------------------------------------------------------------------| +| error | `string` | Fullscreen mode status error. Possible values: `UNSUPPORTED` or `ALREADY_FULLSCREEN`. | ### `invoice_closed` An invoice was closed. - - - - - - - - - - - - - - - - - - - - - - - -
FieldTypeDescription
slug - string - - Passed during the  - - web_app_open_invoice -   - method invocation slug value. -
status - string - - Invoice status. Values: -
    -
  • - paid, invoice was paid -
  • -
  • - failed, invoice failed -
  • -
  • - pending, invoice is currently pending -
  • -
  • - cancelled, invoice was cancelled -
  • -
-
+| Field | Type | Description | +|--------|----------|-----------------------------------------------------------------------------------------------------------| +| slug | `string` | Passed during the [web_app_open_invoice](methods.md#web-app-open-invoice) method invocation `slug` value. | +| status | `string` | Invoice status. Possible values: `paid`, `failed`, `pending` or `cancelled`. | ### `main_button_pressed` @@ -296,12 +242,24 @@ Application received phone access request status. |-----------|----------|-----------------------------------------------------------------------------------------------------------------------------------------| | button_id | `string` | _Optional_. Identifier of the clicked button. In case, the popup was closed without clicking any button, this property will be omitted. | +### `qr_text_received` + +Available since: **v6.4** + +The QR scanner scanned some QR and extracted its content. + +| Field | Type | Description | +|-------|----------|-----------------------------------------| +| data | `string` | _Optional_. Data extracted from the QR. | + ### `reload_iframe` Parent iframe requested current iframe reload. ### `safe_area_changed` +Available since: **v8.0** + This event occurs whenever the safe area changes in the user's Telegram app, such as when the user switches to landscape mode. @@ -315,16 +273,6 @@ navigation bars. | left | `number` | The left inset in pixels, representing the space to avoid on the left side of the screen | | right | `number` | The right inset in pixels, representing the space to avoid on the right side of the screen | -### `qr_text_received` - -Available since: **v6.4** - -The QR scanner scanned some QR and extracted its content. - -| Field | Type | Description | -|-------|----------|-----------------------------------------| -| data | `string` | _Optional_. Data extracted from the QR. | - ### `scan_qr_popup_closed` Available since: **v6.4** @@ -347,34 +295,17 @@ developer to stylize the app scrollbar (but he is still able to do it himself). Available since: **v6.1** -Occurs when the [Settings Button](settings-button.md) was pressed. +Occurs whenever the [Settings Button](settings-button.md) was pressed. ### `theme_changed` -Occurs whenever [the theme](theming.md) was changed in the user's Telegram app ( -including switching to night mode). +Occurs whenever [the theme](theming.md) was changed in the user's Telegram app (including switching +to night mode). | Field | Type | Description | |--------------|--------------------------|--------------------------------------------------------------------------------------------------------| | theme_params | `Record` | Map where the key is a theme stylesheet key and value is the corresponding color in `#RRGGBB` format. | -### `content_safe_area_changed` - -This event occurs whenever the content safe area changes in the user's Telegram app. For instance, -when a user switches to landscape mode. - -The **safe area** ensures that content does not overlap with Telegram's UI elements. - -The **content safe area** is a subset of the device's safe area, specifically covering Telegram's -UI. - -| Field | Type | Description | -|--------|----------|--------------------------------------------------------------------------------------------------| -| top | `number` | The top inset in pixels, representing the space to avoid at the top of the content area | -| bottom | `number` | The bottom inset in pixels, representing the space to avoid at the bottom of the content area | -| left | `number` | The left inset in pixels, representing the space to avoid on the left side of the content area | -| right | `number` | The right inset in pixels, representing the space to avoid on the right side of the content area | - ### `viewport_changed` Occurs whenever the [viewport](viewport.md) has been changed. For example, when the @@ -387,11 +318,10 @@ user started dragging the application or called the expansion method. | is_expanded | `boolean` | Is the viewport currently expanded. | | is_state_stable | `boolean` | Is the viewport current state stable and not going to change in the next moment. | -::: tip -Pay attention to the fact, that send rate of this method is not enough to smoothly resize the -application window. You should probably use a stable height instead of the current one, or handle -this problem in another way. -::: +> [!TIP] +> Pay attention to the fact, that send rate of this method is not enough to smoothly resize the +> application window. You should probably use a stable height instead of the current one, or handle +> this problem in another way. ### `write_access_requested` diff --git a/apps/docs/platform/methods.md b/apps/docs/platform/methods.md index 10231b919..3e65eef4d 100644 --- a/apps/docs/platform/methods.md +++ b/apps/docs/platform/methods.md @@ -386,14 +386,12 @@ Requests full screen mode for mini app. Available since: **v8.0** -Requests exiting full screen mode for mini app. +Requests exiting the fullscreen mode for mini app. ### `web_app_request_phone` Available since: **v6.9** -[//]: # (TODO: Check if it is right. It probably requests other user phone.) - Requests access to current user's phone. ### `web_app_request_theme` @@ -405,15 +403,19 @@ create [theme_changed](events.md#theme-changed) event. Available since: **v8.0** -Requests current [safe area](safe-area.md) information from Telegram. As a result, -Telegram will create [safe_area_changed](events.md#safe-area-changed) event. +Requests the current safe area information from Telegram. + +As a result, Telegram triggers the +[**`safe_area_changed`**](events.md#safe-area-changed) event. ### `web_app_request_content_safe_area` Available since: **v8.0** -Requests current [content safe area](content-safe-area.md) information from Telegram. As a result, -Telegram will create [content_safe_area_changed](events.md#content-safe-area-changed) event. +Requests the current content safe area information from Telegram. + +As a result, Telegram triggers the +[**`content_safe_area_changed`**](events.md#content-safe-area-changed) event. ### `web_app_request_viewport` From d4c54fa6b017c077a8c32ee39daf6d33bc4ceaf5 Mon Sep 17 00:00:00 2001 From: Vladislav Kibenko Date: Mon, 2 Dec 2024 23:41:24 +0500 Subject: [PATCH 32/34] chore(bridge/methods): reorder methods --- packages/bridge/src/methods/types/methods.ts | 24 ++++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/packages/bridge/src/methods/types/methods.ts b/packages/bridge/src/methods/types/methods.ts index 1ce7801c3..61088f1f0 100644 --- a/packages/bridge/src/methods/types/methods.ts +++ b/packages/bridge/src/methods/types/methods.ts @@ -180,6 +180,12 @@ export interface Methods { */ data: string; }>; + /** + * Exits fullscreen mode for miniapp. + * @since v8.0 + * @see https://docs.telegram-mini-apps.com/platform/methods#web-app-exit-fullscreen + */ + web_app_exit_fullscreen: CreateMethodParams; /** * Expands the Mini App. * @see https://docs.telegram-mini-apps.com/platform/methods#web-app-expand @@ -276,17 +282,17 @@ export interface Methods { */ web_app_ready: CreateMethodParams; /** - * Requests to open the mini app in fullscreen. + * Requests content safe area of the user's phone. * @since v8.0 - * @see https://docs.telegram-mini-apps.com/platform/methods#web-app-request-fullscreen + * @see https://docs.telegram-mini-apps.com/platform/methods#web-app-request-content-safe-area */ - web_app_request_fullscreen: CreateMethodParams; + web_app_request_content_safe_area: CreateMethodParams; /** - * Exits fullscreen mode for miniapp. + * Requests to open the mini app in fullscreen. * @since v8.0 - * @see https://docs.telegram-mini-apps.com/platform/methods#web-app-exit-fullscreen + * @see https://docs.telegram-mini-apps.com/platform/methods#web-app-request-fullscreen */ - web_app_exit_fullscreen: CreateMethodParams; + web_app_request_fullscreen: CreateMethodParams; /** * Requests access to current user's phone. * @since v6.9 @@ -299,12 +305,6 @@ export interface Methods { * @see https://docs.telegram-mini-apps.com/platform/methods#web-app-request-safe-area */ web_app_request_safe_area: CreateMethodParams; - /** - * Requests content safe area of the user's phone. - * @since v8.0 - * @see https://docs.telegram-mini-apps.com/platform/methods#web-app-request-content-safe-area - */ - web_app_request_content_safe_area: CreateMethodParams; /** * Requests current theme from Telegram. As a result, Telegram will create `theme_changed` event. * @see https://docs.telegram-mini-apps.com/platform/methods#web-app-request-theme From 948022729ca0c29c8de3d593425728ba775ab533 Mon Sep 17 00:00:00 2001 From: Vladislav Kibenko Date: Mon, 2 Dec 2024 23:44:43 +0500 Subject: [PATCH 33/34] docs(methods): proofread new methods --- apps/docs/platform/methods.md | 45 ++++++++++++++++------------------- 1 file changed, 21 insertions(+), 24 deletions(-) diff --git a/apps/docs/platform/methods.md b/apps/docs/platform/methods.md index 3e65eef4d..e30d11de4 100644 --- a/apps/docs/platform/methods.md +++ b/apps/docs/platform/methods.md @@ -118,7 +118,7 @@ Notifies parent iframe about the current iframe is going to reload. Available since: **v7.2** -Requests current biometry settings. +Requests the current biometry settings. ### `web_app_biometry_open_settings` @@ -127,12 +127,9 @@ Available since: **v7.2** Opens the biometric access settings for bots. Useful when you need to request biometrics access to users who haven't granted it yet. -::: info - -This method can be called only in response to user interaction with the Mini -App interface (e.g. a click inside the Mini App or on the main button) - -::: +> [!INFO] +> This method can be called only in response to user interaction with the Mini App interface +> (e.g. a click inside the Mini App or on the main button) ### `web_app_biometry_request_access` @@ -188,6 +185,12 @@ class [Message](https://core.telegram.org/bots/api#message). |-------|----------|----------------------------------------------------------------------| | data | `string` | Data to send to a bot. Should not have size of more than 4096 bytes. | +### `web_app_exit_fullscreen` + +Available since: **v8.0** + +Requests exiting the fullscreen mode for mini app. + ### `web_app_expand` [Expands](viewport.md) the Mini App. @@ -376,17 +379,20 @@ the [clipboard_text_received](events.md#clipboard-text-received) event. Notifies Telegram about current application is ready to be shown. This method will make Telegram to remove application loader and display Mini App. -### `web_app_request_fullscreen` +### `web_app_request_content_safe_area` Available since: **v8.0** -Requests full screen mode for mini app. +Requests the current content safe area information from Telegram. -### `web_app_exit_fullscreen` +As a result, Telegram triggers the +[**`content_safe_area_changed`**](events.md#content-safe-area-changed) event. + +### `web_app_request_fullscreen` Available since: **v8.0** -Requests exiting the fullscreen mode for mini app. +Requests full screen mode for mini app. ### `web_app_request_phone` @@ -394,11 +400,6 @@ Available since: **v6.9** Requests access to current user's phone. -### `web_app_request_theme` - -Requests current [theme](theming.md) from Telegram. As a result, Telegram will -create [theme_changed](events.md#theme-changed) event. - ### `web_app_request_safe_area` Available since: **v8.0** @@ -408,18 +409,14 @@ Requests the current safe area information from Telegram. As a result, Telegram triggers the [**`safe_area_changed`**](events.md#safe-area-changed) event. -### `web_app_request_content_safe_area` - -Available since: **v8.0** - -Requests the current content safe area information from Telegram. +### `web_app_request_theme` -As a result, Telegram triggers the -[**`content_safe_area_changed`**](events.md#content-safe-area-changed) event. +Requests the current [theme](theming.md) from Telegram. As a result, Telegram will +create [theme_changed](events.md#theme-changed) event. ### `web_app_request_viewport` -Requests current [viewport](viewport.md) information from Telegram. As a result, +Requests the current [viewport](viewport.md) information from Telegram. As a result, Telegram will create [viewport_changed](events.md#viewport-changed) event. ### `web_app_request_write_access` From c68d6b43d4c733449116b16bd99a2bd40929c978 Mon Sep 17 00:00:00 2001 From: Vladislav Kibenko Date: Mon, 2 Dec 2024 23:45:50 +0500 Subject: [PATCH 34/34] chore(docs/viewport): fix invalid image URL --- apps/docs/platform/viewport.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/docs/platform/viewport.md b/apps/docs/platform/viewport.md index fdf6e1d5d..952436e44 100644 --- a/apps/docs/platform/viewport.md +++ b/apps/docs/platform/viewport.md @@ -40,7 +40,7 @@ cases, calling the [web_app_expand](methods.md#web-app-expand) method will have ## Fullscreen -![Full screen](../public/functionality/full-screen.png) +![Full screen](/functionality/full-screen.png) Mini apps can be launched in **fullscreen mode**, which expands the application to cover the entire device screen, removing both the top and bottom bars of Telegram.