* feat: client implementation of subscriptions and modqueue live counts
* fix: unit tests
* feat: live status update in moderation
* feat: live update of new comments in moderation
* chore: View New instead of View More
* feat: fade in transition for new comments
* chore: turn websocket proxy back on
* feat: initial server impl
* fix: make it work :-)
* fix: add box shadow
* chore: make test subscriptions only support 1 top level field following the spec
* fix: linting
* feat: support clientID
* fix: linting
* feat: support commentStatusUpdated subscription
* fix: disabled styles for approve and reject button
* feat: show moderated by system and update flags
* feat: support metrics recording on websocket connections
* fix: handle when same comment enters but leaves again
* Throw error if user tries to ignore a staff member
Throws a UserCannotBeIgnoredError if a user tries to ignore
a user who is a staff member. A staff member in this case is
considered anyone who has a role of staff, moderator, or admin.
CORL-409
* Prevent users from ignoring staff in the user info popover
Creates the staff roles in a constant next to the user model.
Uses this to add a computed property to the user resolver.
CORL-409
* Remove unnecessary async declaration from userIsStaff helper function
CORL-409
* Specify ignoreable on users in client test fixtures
Allows the tests to pass for the required computed property
of ignoreable that is computed by whether a user is a staff
member or not.
CORL-409
* Update more fixtures with ignoreable property on mocked users/commenters
CORL-409
* Consolidate ignore-able calculation into re-usable helper methods
Re-use the logic for whether a role is a staff member to
clearly define when a user is ignore-able or not across the
business logic.
CORL-409
* Set the ignoreable optimisticResponse on comment mutations
We have set the ignoreable value in the graphQL schema, so now
the optimisticResponses are looking for a default value to use
until the data result arrives. Put to false since the ignoreable
value is set on our author, we likely don't want to ignore ourselves.
CORL-409
* feat: added server impl of ignore user
* feat: added development error wrapping
* feat: Add arror to popover
* fix: dependencies
* fix: server locals watch paths
* feat: AuthorPopover & Member Since
* chore: refactor stream file organization
* feat: ignore user
* fix: file case
* feat: add support for useLocal hook!
* test: test ignored users
* feat: suspending, banning, now propogation
* feat: adapting to `now`
* feat: support auth for suspension/banned
* feat: added trace-id to requests
* feat: new mutation api with hooks support
* feat: added user status filtering, current field
* feat: Implement filter by status, adapt to new USER_STATUS type, add lookup helper <3
* fix: typo
* fix: tests
* chore: rename banned status to ban status
* test: feature test + lots of test helper improvements e.g. types
* fix: add translation to ban user modal
* fix: translation
* fix: test
* feat: added text indexes, query param to edges
* fix: cleaned up, added createdAt index
* fix: improved indexing support
* feat: integrate search into community and stories
* feat: adorn with search button
* test: add tests
* feat: moved html-webpack-plugin to custom server templates in production
* fix: fixed templates
* fix: removed sri for the time being
* fix: fixed up tests for new field name
* chore: Rename InnerProps to Props
* feat: Render community guidelines
* chore: refactor schema communityGuidelines* settings into it's own type
* test: update snapshots
* feat: moderation config
* feat: configure banned and suspect words
* chore: upgrade react and test libs to the newest version <3
* chore: upgrade typescript + some refactor
* feat: general, organization and advanced configuration panes
* fix: translation
* feat: speedup fetching markdown editor
* feat: localize markdown editor
* chore: refactor container names
* chore: rename infobox to communityGuidelines
* feat: closing comment streams duration config
* test: add feature tests for configurations
* fix: mock only console.error
* chore: upgrade node
* chore: require node >= 10
* fix: better validation and default values
* feat: Make DurationField a general purpose component and reuse for Edit Comment Timeframe
* test: add unit test for duration field
* fix: patch for bug when built in production
* chore: bump npm version to latest
* fix: adapted Dockerfile to new version of node
* refactor: harmonized seconds/milliseconds to seconds
* fix: resolve bug from merge conflict
* feat: added user validation
* fix: adapt client validation to match servers
* fix: snapshots
* feat: moved validation code to common
* chore: renamed utils/validate to helpers/validate
* fix: applied fix for reaction mutation
* fix: removed comment length flag
* feat: added additionalDetails field to flags
* feat: added other flag type
* fix: renamed snake case to camel case
* fix: changed case for mutators
* fix: renamed all snake case to camel case for db
* feat: added support for comment revisions + split comment actions
* fix: updated tests
* feat: implemented CommentModerationAction
* fix: fixed case issues
* feat: enabled WeakMap for wordList processsing
* chore: npm audit
* feat: added mutations for removing + scraping stories
- added mutation for removing stories
- added mutation for scraping stories
- renamed all delete* to remove* to avoid reserved keyword collision
* fix: linting
* feat: implemented createStory
* feat: added support for createStory
* feat: improved Story deletion
- Deletes comments on the deleted Story
- Deletes actions of comments that were deleted via new
`root_item_id` parameter for Comment Action's
- Added logging around critical components of the remove
process
* feat: implemented mergeStory
- Added new merge function for root actions
- Added new merge function for story comments
- Added new merge function for comment status counts
- Added new remove stories function
* fix: fixed story creation method
* fix: added action count merging
* fix: removed outdated file
* fix: removed queue that got duplicated via rebase
* fix: prevent error when action counts are empty