Redesign messenger connection settings

This commit is contained in:
Ruslan Bakiev
2026-04-06 15:51:10 +07:00
parent 824065f852
commit 17b5a87699
6 changed files with 293 additions and 82 deletions

View File

@@ -282,6 +282,7 @@ export type Mutation = {
createMyDeliveryAddress: DeliveryAddress;
createReferral: ReferralLink;
deleteMyDeliveryAddress: Scalars['Boolean']['output'];
deleteMyMessengerConnection: Scalars['Boolean']['output'];
managerSetOrderOffer: Order;
managerSetOrderStatus: Order;
registerSelf: RegistrationRequest;
@@ -352,6 +353,11 @@ export type MutationDeleteMyDeliveryAddressArgs = {
};
export type MutationDeleteMyMessengerConnectionArgs = {
connectionId: Scalars['ID']['input'];
};
export type MutationManagerSetOrderOfferArgs = {
input: SetOrderOfferInput;
};
@@ -1043,6 +1049,13 @@ export type DeleteMyDeliveryAddressMutationVariables = Exact<{
export type DeleteMyDeliveryAddressMutation = { __typename?: 'Mutation', deleteMyDeliveryAddress: boolean };
export type DeleteMyMessengerConnectionMutationVariables = Exact<{
connectionId: Scalars['ID']['input'];
}>;
export type DeleteMyMessengerConnectionMutation = { __typename?: 'Mutation', deleteMyMessengerConnection: boolean };
export type MyCounterpartyProfileQueryVariables = Exact<{ [key: string]: never; }>;
@@ -2650,6 +2663,33 @@ export function useDeleteMyDeliveryAddressMutation(options: VueApolloComposable.
return VueApolloComposable.useMutation<DeleteMyDeliveryAddressMutation, DeleteMyDeliveryAddressMutationVariables>(DeleteMyDeliveryAddressDocument, options);
}
export type DeleteMyDeliveryAddressMutationCompositionFunctionResult = VueApolloComposable.UseMutationReturn<DeleteMyDeliveryAddressMutation, DeleteMyDeliveryAddressMutationVariables>;
export const DeleteMyMessengerConnectionDocument = gql`
mutation DeleteMyMessengerConnection($connectionId: ID!) {
deleteMyMessengerConnection(connectionId: $connectionId)
}
`;
/**
* __useDeleteMyMessengerConnectionMutation__
*
* To run a mutation, you first call `useDeleteMyMessengerConnectionMutation` within a Vue component and pass it any options that fit your needs.
* When your component renders, `useDeleteMyMessengerConnectionMutation` returns an object that includes:
* - A mutate function that you can call at any time to execute the mutation
* - Several other properties: https://v4.apollo.vuejs.org/api/use-mutation.html#return
*
* @param options that will be passed into the mutation, supported options are listed on: https://v4.apollo.vuejs.org/guide-composable/mutation.html#options;
*
* @example
* const { mutate, loading, error, onDone } = useDeleteMyMessengerConnectionMutation({
* variables: {
* connectionId: // value for 'connectionId'
* },
* });
*/
export function useDeleteMyMessengerConnectionMutation(options: VueApolloComposable.UseMutationOptions<DeleteMyMessengerConnectionMutation, DeleteMyMessengerConnectionMutationVariables> | ReactiveFunction<VueApolloComposable.UseMutationOptions<DeleteMyMessengerConnectionMutation, DeleteMyMessengerConnectionMutationVariables>> = {}) {
return VueApolloComposable.useMutation<DeleteMyMessengerConnectionMutation, DeleteMyMessengerConnectionMutationVariables>(DeleteMyMessengerConnectionDocument, options);
}
export type DeleteMyMessengerConnectionMutationCompositionFunctionResult = VueApolloComposable.UseMutationReturn<DeleteMyMessengerConnectionMutation, DeleteMyMessengerConnectionMutationVariables>;
export const MyCounterpartyProfileDocument = gql`
query MyCounterpartyProfile {
myCounterpartyProfile {

View File

@@ -18,6 +18,7 @@ type MessengerStartInput = {
export function useMessengerStart() {
const pendingChannel = ref<MessengerChannel | null>(null);
const maxMiniApp = useMaxMiniApp();
async function openMessengerBot({ channel, baseUrl, email, redirectPath }: MessengerStartInput) {
pendingChannel.value = channel;
@@ -38,7 +39,17 @@ export function useMessengerStart() {
const startUrl = buildMessengerBotStartUrl(baseUrl, payload.startToken);
if (import.meta.client) {
window.open(startUrl, '_blank', 'noopener,noreferrer');
if (
channel === 'MAX'
&& maxMiniApp.isAvailable.value
&& startUrl.startsWith('https://max.ru/')
&& typeof maxMiniApp.webApp.value?.openMaxLink === 'function'
) {
maxMiniApp.webApp.value.openMaxLink(startUrl);
}
else {
window.open(startUrl, '_blank', 'noopener,noreferrer');
}
}
return payload;