feat(telegram): native SettingsButton opens our Settings screen
CI / changes (pull_request) Successful in 2s
CI / unit (pull_request) Has been skipped
CI / integration (pull_request) Has been skipped
CI / ui (pull_request) Successful in 55s
CI / gate (pull_request) Successful in 0s
CI / deploy (pull_request) Successful in 1m16s
CI / changes (pull_request) Successful in 2s
CI / unit (pull_request) Has been skipped
CI / integration (pull_request) Has been skipped
CI / ui (pull_request) Successful in 55s
CI / gate (pull_request) Successful in 0s
CI / deploy (pull_request) Successful in 1m16s
Inside the Mini App, reveal Telegram's native Settings button (Bot API 7.0) and route its taps to the Settings screen — the standard Mini App affordance. The in-app gear entry stays the primary path (two entry points by design). No-op outside Telegram or on a client predating the button.
This commit is contained in:
@@ -9,6 +9,7 @@ import {
|
||||
telegramOpenExternalLink,
|
||||
telegramThemeParams,
|
||||
telegramSafeAreaInset,
|
||||
telegramShowSettingsButton,
|
||||
} from './telegram';
|
||||
|
||||
function stubWebApp(initData: string, startParam?: string) {
|
||||
@@ -77,6 +78,24 @@ describe('telegramOpenExternalLink', () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe('telegramShowSettingsButton', () => {
|
||||
afterEach(() => vi.unstubAllGlobals());
|
||||
|
||||
it('shows the native Settings button and wires its click inside Telegram', () => {
|
||||
const onClick = vi.fn();
|
||||
const show = vi.fn();
|
||||
const handler = vi.fn();
|
||||
vi.stubGlobal('window', { Telegram: { WebApp: { SettingsButton: { onClick, show } } } });
|
||||
telegramShowSettingsButton(handler);
|
||||
expect(onClick).toHaveBeenCalledWith(handler);
|
||||
expect(show).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('is a no-op without the SDK button (older client / outside Telegram)', () => {
|
||||
expect(() => telegramShowSettingsButton(() => {})).not.toThrow();
|
||||
});
|
||||
});
|
||||
|
||||
describe('routeExternalLinkInTelegram', () => {
|
||||
afterEach(() => vi.unstubAllGlobals());
|
||||
|
||||
|
||||
Reference in New Issue
Block a user