mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-25 10:22:55 +08:00
feat(core): duplicated calendar subscription notification (#12364)
This commit is contained in:
@@ -55,9 +55,20 @@ const AddSubscription = () => {
|
|||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
const handleAddSub = useCallback(() => {
|
const handleAddSub = useCallback(() => {
|
||||||
|
const _url = url.trim();
|
||||||
|
const exists = calendar.getSubscription(_url);
|
||||||
|
if (exists) {
|
||||||
|
notify.error({
|
||||||
|
title: t['com.affine.integration.calendar.new-duplicate-error-title'](),
|
||||||
|
message:
|
||||||
|
t['com.affine.integration.calendar.new-duplicate-error-content'](),
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
setVerifying(true);
|
setVerifying(true);
|
||||||
calendar
|
calendar
|
||||||
.createSubscription(url)
|
.createSubscription(_url)
|
||||||
.then(() => {
|
.then(() => {
|
||||||
setOpen(false);
|
setOpen(false);
|
||||||
setUrl('');
|
setUrl('');
|
||||||
|
|||||||
@@ -106,6 +106,10 @@ export class CalendarIntegration extends Entity {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getSubscription(url: string) {
|
||||||
|
return this.store.getSubscription(url);
|
||||||
|
}
|
||||||
|
|
||||||
deleteSubscription(url: string) {
|
deleteSubscription(url: string) {
|
||||||
this.store.removeSubscription(url);
|
this.store.removeSubscription(url);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -99,6 +99,10 @@ export class CalendarStore extends Store {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getSubscription(url: string) {
|
||||||
|
return this.getSubscriptionMap()[url];
|
||||||
|
}
|
||||||
|
|
||||||
watchSubscriptionCache(url: string) {
|
watchSubscriptionCache(url: string) {
|
||||||
return this.cacheStorage.watch<string>(this.getCacheKey(url));
|
return this.cacheStorage.watch<string>(this.getCacheKey(url));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7906,6 +7906,14 @@ export function useAFFiNEI18N(): {
|
|||||||
* `Calendar URL`
|
* `Calendar URL`
|
||||||
*/
|
*/
|
||||||
["com.affine.integration.calendar.new-url-label"](): string;
|
["com.affine.integration.calendar.new-url-label"](): string;
|
||||||
|
/**
|
||||||
|
* `This is a duplicate calendar`
|
||||||
|
*/
|
||||||
|
["com.affine.integration.calendar.new-duplicate-error-title"](): string;
|
||||||
|
/**
|
||||||
|
* `This subscription calendar already exists in the account of subscribed calendars.`
|
||||||
|
*/
|
||||||
|
["com.affine.integration.calendar.new-duplicate-error-content"](): string;
|
||||||
/**
|
/**
|
||||||
* `An error occurred while adding the calendar`
|
* `An error occurred while adding the calendar`
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -1979,6 +1979,8 @@
|
|||||||
"com.affine.integration.calendar.unsubscribe": "Unsubscribe",
|
"com.affine.integration.calendar.unsubscribe": "Unsubscribe",
|
||||||
"com.affine.integration.calendar.new-title": "Add a calendar by URL",
|
"com.affine.integration.calendar.new-title": "Add a calendar by URL",
|
||||||
"com.affine.integration.calendar.new-url-label": "Calendar URL",
|
"com.affine.integration.calendar.new-url-label": "Calendar URL",
|
||||||
|
"com.affine.integration.calendar.new-duplicate-error-title": "This is a duplicate calendar",
|
||||||
|
"com.affine.integration.calendar.new-duplicate-error-content": "This subscription calendar already exists in the account of subscribed calendars.",
|
||||||
"com.affine.integration.calendar.new-error": "An error occurred while adding the calendar",
|
"com.affine.integration.calendar.new-error": "An error occurred while adding the calendar",
|
||||||
"com.affine.integration.calendar.all-day": "All day",
|
"com.affine.integration.calendar.all-day": "All day",
|
||||||
"com.affine.integration.calendar.new-doc": "New doc",
|
"com.affine.integration.calendar.new-doc": "New doc",
|
||||||
|
|||||||
Reference in New Issue
Block a user