* fix: bug in lookup not checking object properly before accessing
* fix: Recursive types not handling optional arrays
* add user badges component
* create user badges from sso token
* update badges type
* revert src/core/client/embed/index.html
* remove duplicated line
* add user badges component
* create user badges from sso token
* revert src/core/client/embed/index.html
* remove duplicated line
* fix types
* fix tests and snaps
* add user badges to user drawer
* update snaps
* update readme
* [CORL-476] add user role from SSO token (#2475)
* add role from token
* use joi to validate role values
Co-Authored-By: Wyatt Johnson <wyattjoh@gmail.com>
* simplify sso.role validation
* add test for invalid role in sso token
* Center sign in popovers in the browser window so they are always visible
* Set popover window feature by default using interfaced parameters
* Update snapshots to account for feature parameters on popup windows
* Lowercase the bar in menubar for Popup so it matches window api
* fix: externalized feature reconciliation
* add types for username updates
* add update username methods
* add types and resolvers for username history
* connect frontend to username history and change history mutation
* style update username box
* show username changes in user history drawer
* new users have 1 username entry
* add translations for username change
* allow new users to change username once
* add tests for change username ui
* send email to users after username change
* add types to tests
* treat status.username.history as mandatory
* remove hardcoded 14 day username update frequency
* use framework translation directives
* add account history action component
* clean up strings
* fix imports in change username container
* fix templates
* rename update username methods
* fix nunjucks formatting
* add warning if user missing email
* add fixme
* fix spacing
* Create preliminary UI for requesting a user's comment history
CORL-235
* Create preliminary download handler
CORL-235
* Create preliminary CSV exporter for downloading user's comments
CORL-235
* Create preliminary download comments flow with email and landing page
User can download their comments after requesting via an email.
Does not include limiters preventing users from spamming the download flow.
CORL-235
* Style the download comments landing page to match the spec
CORL-235
* Update the profile download comments to respect 14 day download limit
CORL-235
* Hook up request limiter on the comment download end points.
CORL-235
* Create sorry dialogue for when the download comments link is invalid/expired
CORL-235
* Create loading spinner for comment download landing page
CORL-235
* Create an optimistic updater for requesting a comment download
CORL-235
* Add localization for download comments landing page's sorry text
CORL-235
* Adjust downloaded comment format and contents
- Format the date to match tenant local
- Format dates to be using numeric values with date and time
- Add comment URL to exported CSV record
CORL-235
* Rename `createCSV` to `createExportedContent` in the download handler
CORL-235
* Make comment download callout full width and left justified
CORL-235
* Update stream snapshots to account for the download comments changes
CORL-235
* Update snapshots to correspond to download comments changes
CORL-235
* Add date filter to the comment download
Will filter by date of the issued token to only include comments before
that time.
CORL-235
* Clean up the layout of the list items in the download comments landing page
CORL-235
* fix: localization fixes
* fix: formatting
* fix: download file enhancements
* fix: addressed download request loophole
* Update snapshots to address button changes on download comments landing page
CORL-235
* Simplify download comment landing page components
CORL-235
* Remove max-width calc's on account main layout and set them in child views
Sets the max-width settings on the download route since it's custom
set on all the othere routes (email and password).
CORL-235
* Bump npm version in package.json
CORL-235
* feat: add useResizeObserver hook
* fix: stream jumps when clicking on the last reply button when scrolled to the bottom
* chore: use resize observer in auth popup and simplify resize handling
* fix: snapshots and remove resize observer from stream
* fix: focus unmounted rte
* wire up suspension modal
* show user suspended callout on stream
* prevent comment actions for suspended users
* set default to 3 hour suspension
* add message field to suspension
* allow custom message for suspension
* show suspend success modal
* fix type errors
* remove unused code
* update styles
* fix fixture for streams
* add suspension ui tests
* fix types
* remove warnings?
* remove snapshot
* fix merge conflicts
* allow custom email message when banning users
* fix typo
* correct message type
* use final-form in suspend modal
* refactor suspend modal to use final-form
* refactor ban modal to use final-form
* refactor userStatusChangeContainer to use useCallback
* feat: improve translated form
* fix: addressed issue caused by i18n refactor
* update getMessage to accept arguments, remove format method
* translate suspend info
* change hour format
* make message a mandatory input for suspend and ban user
* fix types in user table
* Revert "fix types in user table"
This reverts commit d396e90b88bb1bd354c5cdbdd72b6d8f1ab72929.
* fix types for user table
* fix: small review tweaks
* feat: support comment replies
* feat: comment created
* feat: live update top level comments
* feat: live updates on the stream embed
* fix: tests
* chore: refactor FadeInTransition
* fix: add missing translation and a live update bug
* fix: graqphql
* feat: improve loading experiene :-)
* fix: live comment bugs
* chore: adapt translation
* feat: stop live updates when story is closed or commenting is disabled
* test: add tests for stream live updates
* fix: remove forgotten piece of code
* fix: tests
* Add a ban user action to the stream moderation drop down
CORL-382
* Show banned stated for user in stream moderation drop down
If the user is actively banned, the ban user option will be
disabled and show a status of "banned".
CORL-382
* Create utility for generating random stories, comments, and users
CORL-382
* Add ban and suspension values to baseUser in fixtures
CORL-382
* Updated banned.spec.tsx to use new test utilities for generating fixture data
CORL-382
* Prevent users from being able to ban themselves in the moderation dropdown
CORL-382
* Kill optimistic response errors for comment mutations
Set the author.status.current to an empty array so it stops
complaining about it being unused.
CORL-382
* Rename util in tests to helpers/fixture.ts
CORL-382
* Remove unused import from CreateCommentReplyMutation.ts
CORL-382
* Put back the optimistic ban responses into comment mutations
The warnings spewing out during tests are false, for further
detail please see: https://github.com/facebook/relay/pull/2760
CORL-382
* Denormalize generated stories and comments
CORL-382
* Clean up import ordering in ModerationActionsContainer.tsx
CORL-382
* Inject appropriate scoped items into callbacks for moderation dropdown
CORL-382
* Set optimistic response author status from known viewer status
CORL-382
* feat: added cookie support to coral
* feat: adapt client to use cookies
* fix: safari input styles
* fix: lint
* fix: linting
* fix: support clearing cookies properly, oauth
* feat: support cookies for websocket upgrade requests
* fix: lint
* fix: tests
* Add tests around ignore button visibility on user popover cards
Staff member -> ignore should not be present
Regular commenter -> ignore button should be present
CORL-409
* chore: simplify fixture
* chore: normalize naming in test and use type instead of any
* 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: show story title + moderate this story link
* feat: introduce mini unit
* test: add tests for moderate story link
* fix: snapshot
* fix: lint / test
* fix: unwanted margin