feat(core): add comment notification settings (#13029)

![image](https://github.com/user-attachments/assets/1b239592-1c0d-4575-ad3b-bfb3d0c873c8)





#### PR Dependency Tree


* **PR #13029** 👈

This tree was auto-generated by
[Charcoal](https://github.com/danerwilliams/charcoal)

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **New Features**
* Added an option in user settings to enable or disable email
notifications for comments on your documents.
* Updated the user interface to include a toggle for comment email
notifications.
* Extended GraphQL queries and schema to support the new comment email
notification setting.

* **Localization**
* Added new English translations for comment email notification
settings.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
fengmk2
2025-07-04 16:04:18 +08:00
committed by GitHub
parent 882d06b359
commit 296089efc9
8 changed files with 57 additions and 1 deletions

View File

@@ -14,6 +14,7 @@ export async function getUserSettings(
settings {
receiveInvitationEmail
receiveMentionEmail
receiveCommentEmail
}
}
}

View File

@@ -23,6 +23,7 @@ test('should get user settings', async t => {
t.deepEqual(settings, {
receiveInvitationEmail: true,
receiveMentionEmail: true,
receiveCommentEmail: true,
});
});
@@ -31,11 +32,13 @@ test('should update user settings', async t => {
await updateUserSettings(app, {
receiveInvitationEmail: false,
receiveMentionEmail: false,
receiveCommentEmail: false,
});
const settings = await getUserSettings(app);
t.deepEqual(settings, {
receiveInvitationEmail: false,
receiveMentionEmail: false,
receiveCommentEmail: false,
});
await updateUserSettings(app, {
@@ -45,6 +48,7 @@ test('should update user settings', async t => {
t.deepEqual(settings2, {
receiveInvitationEmail: false,
receiveMentionEmail: true,
receiveCommentEmail: false,
});
await updateUserSettings(app, {
@@ -55,6 +59,33 @@ test('should update user settings', async t => {
t.deepEqual(settings3, {
receiveInvitationEmail: false,
receiveMentionEmail: true,
receiveCommentEmail: false,
});
});
test('should update user settings with comment email', async t => {
await app.signup();
await updateUserSettings(app, {
receiveCommentEmail: true,
});
const settings = await getUserSettings(app);
t.deepEqual(settings, {
receiveCommentEmail: true,
receiveInvitationEmail: true,
receiveMentionEmail: true,
});
await updateUserSettings(app, {
receiveCommentEmail: false,
});
const settings2 = await getUserSettings(app);
t.deepEqual(settings2, {
receiveCommentEmail: false,
receiveInvitationEmail: true,
receiveMentionEmail: true,
});
});