Files
web-frontend/app/composables/useMessengerMiniApp.ts
2026-04-04 21:51:40 +07:00

46 lines
1.3 KiB
TypeScript

import { decodeMessengerMiniAppStartParam } from '~/composables/useMessengerMiniAppStart';
export function useMessengerMiniApp() {
const telegramMiniApp = useTelegramMiniApp();
const maxMiniApp = useMaxMiniApp();
const channel = computed<'TELEGRAM' | 'MAX' | null>(() => {
if (maxMiniApp.isAvailable.value) {
return 'MAX';
}
if (telegramMiniApp.isAvailable.value) {
return 'TELEGRAM';
}
return null;
});
const isAvailable = computed(() => channel.value !== null);
const initData = computed(() =>
channel.value === 'MAX' ? maxMiniApp.initData.value : telegramMiniApp.initData.value,
);
const startParam = computed(() =>
channel.value === 'MAX' ? maxMiniApp.startParam.value : telegramMiniApp.startParam.value,
);
const startPath = computed(() => decodeMessengerMiniAppStartParam(startParam.value));
const displayName = computed(() =>
channel.value === 'MAX' ? maxMiniApp.displayName.value : telegramMiniApp.displayName.value,
);
const channelLabel = computed(() =>
channel.value === 'MAX' ? 'MAX' : channel.value === 'TELEGRAM' ? 'Telegram' : '',
);
return {
channel,
channelLabel,
isAvailable,
initData,
startParam,
startPath,
displayName,
telegramMiniApp,
maxMiniApp,
};
}