[CORL 547] org-wide announcements (#2813)

* CRUD announcements

* only show announcement if not disabled

* make announcements dismissable

* add announcement mutations

* update announcement form logic

* style announcements on stream

* update snap

* localize strings

* close form if announcement is removed

* move announcement config below sitewide commenting config

* move date calculation inside useMemo

* move announcementconfig code to announcementconfigcontainer

* use coralContext for localStorage

* fix type of announcement createdAt

* move announcement form to modal

* remove payload pruning from configure route

* simplify announcement display logic

* make validation message full width

Co-authored-by: Kim Gardner <kgardnr@gmail.com>
This commit is contained in:
Tessa Thornton
2020-02-03 13:12:25 -05:00
committed by GitHub
co-authored by Kim Gardner
parent a7b2af85fc
commit a1a8652f7e
29 changed files with 855 additions and 1 deletions
@@ -237,4 +237,12 @@ export const Mutation: Required<GQLMutationTypeResolver<void>> = {
flags: await ctx.mutators.Settings.disableFeatureFlag(input.flag),
clientMutationId: input.clientMutationId,
}),
createAnnouncement: async (source, { input }, ctx) => ({
settings: await ctx.mutators.Settings.createAnnouncement(input),
clientMutationId: input.clientMutationId,
}),
deleteAnnouncement: async (source, { input }, ctx) => ({
settings: await ctx.mutators.Settings.deleteAnnouncement(),
clientMutationId: input.clientMutationId,
}),
};
+6 -1
View File
@@ -1,4 +1,7 @@
import { Tenant } from "coral-server/models/tenant";
import {
retrieveAnnouncementIfEnabled,
Tenant,
} from "coral-server/models/tenant";
import {
GQLFEATURE_FLAG,
@@ -18,4 +21,6 @@ export const Settings: GQLSettingsTypeResolver<Tenant> = {
slack: ({ slack = {} }) => slack,
featureFlags: ({ featureFlags = [] }) =>
featureFlags.filter(filterValidFeatureFlags()),
announcement: ({ announcement }) =>
retrieveAnnouncementIfEnabled(announcement),
};