Files
mono/components/desktop/src/features/Membership/GenerateMembershipExitDecision/model/index.ts
T
coopops 2e42cac14c
Typecheck / desktop (pull_request) Successful in 13m52s
Typecheck / controller (pull_request) Successful in 13m19s
feat(desktop): UI выхода пайщика из кооператива
- feature Membership/ExitFromCoop: кнопка «Выход из кооператива» (BaseButton
  danger) на WalletPage в шапке рядом с возвратом паевого; диалог-предупреждение
  (BaseDialog+Form+BaseBanner) с предрасчётом суммы возврата
  (MembershipExitReturnPreview) и текстом «паевой будет возвращён, аккаунт
  заблокирован, возврат невозможен»; submit генерит заявление (200), подписывает
  и подаёт createMembershipExit (push exitcoop). Канон-компоненты, Material-иконки;
- feature Membership/GenerateMembershipExitDecision: генерация решения совета (201);
- process-decisions: handler `leavecoop` в реестре повесток — Совет генерирует
  решение по выходу так же, как по вступлению/возврату.

ESLint чисто. Type-check — в CI (полный vue-tsc локально не гоняем).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-13 13:48:16 +00:00

43 lines
1.3 KiB
TypeScript

import { client } from 'src/shared/api/client';
import { Mutations } from '@coopenomics/sdk';
import { useSystemStore } from 'src/entities/System/model';
export type IGenerateMembershipExitDecisionData =
Mutations.MembershipExit.GenerateMembershipExitDecision.IInput['data'];
export type IGenerateMembershipExitDecisionResult =
Mutations.MembershipExit.GenerateMembershipExitDecision.IOutput[typeof Mutations.MembershipExit.GenerateMembershipExitDecision.name];
/**
* Композабл генерации документа решения собрания совета о выходе пайщика (registry 201).
*/
export function useGenerateMembershipExitDecision() {
const { info } = useSystemStore();
async function generateMembershipExitDecision(
data: Omit<IGenerateMembershipExitDecisionData, 'coopname'>,
): Promise<IGenerateMembershipExitDecisionResult> {
const {
[Mutations.MembershipExit.GenerateMembershipExitDecision.name]: result,
} = await client.Mutation(
Mutations.MembershipExit.GenerateMembershipExitDecision.mutation,
{
variables: {
data: {
coopname: info.coopname,
...data,
},
options: {
lang: 'ru',
},
},
},
);
return result;
}
return {
generateMembershipExitDecision,
};
}