feat(core): optimize team workspace member management (#9737)

close AF-2106 AF-2077 AF-2089

feat(core): handle need more seat status

feat(core): prevent invite members when team plan is canceled
This commit is contained in:
JimmFly
2025-02-07 10:08:00 +00:00
parent 85d916f1eb
commit d5a626d9c3
18 changed files with 562 additions and 154 deletions

View File

@@ -6,7 +6,7 @@
"el-GR": 90,
"en": 100,
"es-AR": 90,
"es-CL": 92,
"es-CL": 91,
"es": 90,
"fa": 90,
"fr": 90,

View File

@@ -289,6 +289,10 @@ export function useAFFiNEI18N(): {
* `Invited members will collaborate with you in current workspace`
*/
["Invite Members Message"](): string;
/**
* `Insufficient team seat`
*/
["insufficient-team-seat"](): string;
/**
* `Joined workspace`
*/
@@ -3881,6 +3885,10 @@ export function useAFFiNEI18N(): {
* `Remove member`
*/
["com.affine.payment.member.team.remove"](): string;
/**
* `Retry payment`
*/
["com.affine.payment.member.team.retry-payment"](): string;
/**
* `Change role to admin`
*/
@@ -3893,6 +3901,34 @@ export function useAFFiNEI18N(): {
* `Assign as owner`
*/
["com.affine.payment.member.team.assign"](): string;
/**
* `Insufficient Team Seats`
*/
["com.affine.payment.member.team.retry-payment.title"](): string;
/**
* `The payment for adding new team members has failed. To add more seats, please update your payment method and process unpaid invoices.`
*/
["com.affine.payment.member.team.retry-payment.owner.description"](): string;
/**
* `The payment for adding new team members has failed. Please contact your workspace owner to update the payment method and process unpaid invoices.`
*/
["com.affine.payment.member.team.retry-payment.admin.description"](): string;
/**
* `Update Payment`
*/
["com.affine.payment.member.team.retry-payment.update-payment"](): string;
/**
* `Subscription has been disabled for your team workspace. To add more seats, you'll need to resume subscription first.`
*/
["com.affine.payment.member.team.disabled-subscription.owner.description"](): string;
/**
* `Your team workspace has subscription disabled, which prevents adding more seats. Please contact your workspace owner to enable subscription.`
*/
["com.affine.payment.member.team.disabled-subscription.admin.description"](): string;
/**
* `Resume Subscription`
*/
["com.affine.payment.member.team.disabled-subscription.resume-subscription"](): string;
/**
* `Invitation Revoked`
*/
@@ -4081,6 +4117,14 @@ export function useAFFiNEI18N(): {
* `Resume`
*/
["com.affine.payment.resume"](): string;
/**
* `Subscription Resumed`
*/
["com.affine.payment.resume.success.title"](): string;
/**
* `Your team workspace subscription has been enabled successfully. Changes will take effect immediately.`
*/
["com.affine.payment.resume.success.team.message"](): string;
/**
* `Resume auto-renewal`
*/
@@ -4241,6 +4285,10 @@ export function useAFFiNEI18N(): {
* `Open in center peek`
*/
["com.affine.peek-view-controls.open-doc-in-center-peek"](): string;
/**
* `Click or drag`
*/
["com.affine.split-view-drag-handle.tooltip"](): string;
/**
* `New`
*/
@@ -6820,6 +6868,14 @@ export function useAFFiNEI18N(): {
* `Are you sure you want to delete these blob files? This action cannot be undone. Make sure you no longer need them before proceeding.`
*/
["com.affine.settings.workspace.storage.unused-blobs.delete.warning"](): string;
/**
* `Join Failed`
*/
["com.affine.fail-to-join-workspace.title"](): string;
/**
* `Please contact your workspace owner to add more seats.`
*/
["com.affine.fail-to-join-workspace.description-2"](): string;
/**
* `An internal error occurred.`
*/
@@ -7072,6 +7128,10 @@ export function useAFFiNEI18N(): {
* `A Team workspace is required to perform this action.`
*/
["error.ACTION_FORBIDDEN_ON_NON_TEAM_WORKSPACE"](): string;
/**
* `Page default role can not be owner.`
*/
["error.PAGE_DEFAULT_ROLE_CAN_NOT_BE_OWNER"](): string;
/**
* `Unsupported subscription plan: {{plan}}.`
*/
@@ -7690,4 +7750,13 @@ export const TypedTrans: {
}, {
["1"]: JSX.Element;
}>>;
/**
* `Unable to join <1/> <2>{{workspaceName}}</2> due to insufficient seats available.`
*/
["com.affine.fail-to-join-workspace.description-1"]: ComponentType<TypedTransProps<{
readonly workspaceName: string;
}, {
["1"]: JSX.Element;
["2"]: JSX.Element;
}>>;
} = /*#__PURE__*/ createProxy(createComponent);

View File

@@ -63,6 +63,7 @@
"Invite": "Invite",
"Invite Members": "Invite members",
"Invite Members Message": "Invited members will collaborate with you in current workspace",
"insufficient-team-seat": "Insufficient team seat",
"Joined Workspace": "Joined workspace",
"Leave": "Leave",
"Link": "Hyperlink (with selected text)",
@@ -965,9 +966,17 @@
"com.affine.payment.member.team.approve": "Approve",
"com.affine.payment.member.team.decline": "Decline",
"com.affine.payment.member.team.remove": "Remove member",
"com.affine.payment.member.team.retry-payment": "Retry payment",
"com.affine.payment.member.team.change.admin": "Change role to admin",
"com.affine.payment.member.team.change.collaborator": "Change role to collaborator",
"com.affine.payment.member.team.assign": "Assign as owner",
"com.affine.payment.member.team.retry-payment.title": "Insufficient Team Seats",
"com.affine.payment.member.team.retry-payment.owner.description": "The payment for adding new team members has failed. To add more seats, please update your payment method and process unpaid invoices.",
"com.affine.payment.member.team.retry-payment.admin.description": "The payment for adding new team members has failed. Please contact your workspace owner to update the payment method and process unpaid invoices.",
"com.affine.payment.member.team.retry-payment.update-payment": "Update Payment",
"com.affine.payment.member.team.disabled-subscription.owner.description": "Subscription has been disabled for your team workspace. To add more seats, you'll need to resume subscription first.",
"com.affine.payment.member.team.disabled-subscription.admin.description": "Your team workspace has subscription disabled, which prevents adding more seats. Please contact your workspace owner to enable subscription.",
"com.affine.payment.member.team.disabled-subscription.resume-subscription": "Resume Subscription",
"com.affine.payment.member.team.revoke.notify.title": "Invitation Revoked",
"com.affine.payment.member.team.revoke.notify.message": "You have canceled the invitation for {{name}}",
"com.affine.payment.member.team.approve.notify.title": "Request approved",
@@ -1011,6 +1020,8 @@
"com.affine.payment.recurring-monthly": "monthly",
"com.affine.payment.recurring-yearly": "annually",
"com.affine.payment.resume": "Resume",
"com.affine.payment.resume.success.title": "Subscription Resumed",
"com.affine.payment.resume.success.team.message": "Your team workspace subscription has been enabled successfully. Changes will take effect immediately.",
"com.affine.payment.resume-renewal": "Resume auto-renewal",
"com.affine.payment.see-all-plans": "See all plans",
"com.affine.payment.sign-up-free": "Sign up free",
@@ -1701,6 +1712,9 @@
"com.affine.settings.workspace.storage.unused-blobs.selected": "Selected",
"com.affine.settings.workspace.storage.unused-blobs.delete.title": "Delete blob files",
"com.affine.settings.workspace.storage.unused-blobs.delete.warning": "Are you sure you want to delete these blob files? This action cannot be undone. Make sure you no longer need them before proceeding.",
"com.affine.fail-to-join-workspace.title": "Join Failed",
"com.affine.fail-to-join-workspace.description-1": "Unable to join <1/> <2>{{workspaceName}}</2> due to insufficient seats available.",
"com.affine.fail-to-join-workspace.description-2": "Please contact your workspace owner to add more seats.",
"error.INTERNAL_SERVER_ERROR": "An internal error occurred.",
"error.TOO_MANY_REQUEST": "Too many requests.",
"error.NOT_FOUND": "Resource not found.",
@@ -1751,6 +1765,7 @@
"error.FAILED_TO_SAVE_UPDATES": "Failed to store doc updates.",
"error.FAILED_TO_UPSERT_SNAPSHOT": "Failed to store doc snapshot.",
"error.ACTION_FORBIDDEN_ON_NON_TEAM_WORKSPACE": "A Team workspace is required to perform this action.",
"error.PAGE_DEFAULT_ROLE_CAN_NOT_BE_OWNER": "Page default role can not be owner.",
"error.UNSUPPORTED_SUBSCRIPTION_PLAN": "Unsupported subscription plan: {{plan}}.",
"error.FAILED_TO_CHECKOUT": "Failed to create checkout session.",
"error.INVALID_CHECKOUT_PARAMETERS": "Invalid checkout parameters provided.",