some minor verbiage modifcations
·
30 commits
to v1.3.6-patch
since this release
1474 little things (#1475)
* Add basic subscription management banner for guest users
- Create SubscriptionManagementBanner component with placeholder "Hello world" message
- Integrate banner into Announcements system to show for guest users only
- Add currentUser to fetchAnnouncementsData to enable user state checking
- Use currentUser.isGuest as placeholder until backend provides isSubscribed property
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Make subscription management banner dismissible
- Add dismissible: true property to subscription-management announcement
- Update dismissible logic to check announcementData.dismissible before category fallback
- Allows users to close the subscription banner independently of category rules
* Convert Announcements component to TypeScript
- Add comprehensive type definitions for all interfaces and props
- Create type guards for SiteMessage vs SiteAnnouncement distinction
- Type all function parameters and return values
- Use ReturnType<typeof useLocation> for location typing
- Maintain all existing functionality while adding type safety
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* banner dismissal timeout now works
* placeholder text and buttons for the subscription banner
* user menu profile status checkmark/warning triangle stubbed via user.isGuest
* convert UserMenu to TypeScript functional component
* add subscription status info to UserMenu
* fix import
* "Tabbed" user profile navigation and form behaviour changes (#1451)
* Add sectioned navigation to user profile page (WIP)
Implement a tabbed sidebar navigation for the user profile page that reuses the styling and behavior from RecordNavigationSection used on gene pages. The profile now has four sections: Account, Subscription, Preferences, and Security, each with individual Save/Cancel buttons and unsaved changes protection.
- Add ProfileNavigationSection component with tab navigation
- Add UserSubscriptionManagement placeholder component (TypeScript)
- Update UserAccountForm to use sidebar layout with conditional section rendering
- Add unsaved changes detection and warning system
- Implement per-section Save/Cancel buttons while maintaining single form state
- Update UserFormContainer to support change discarding functionality
Note: Human accomplice also made a few manual edits during development.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* functional component- and typescript-ification, still WIP
* ts sorted; discard works but poor implementation poss
* Improve user profile form structure and discard functionality
- Add proper Redux-based form reset with resetProfileForm action
- Restructure UserAccountForm with section-specific forms
- Replace window.confirm with Dialog component for better UX
- Change Cancel buttons to "Reset form" for clarity
- Remove unnecessary onSubmit flow to UserSubscriptionManagement
- Security section no longer shows inappropriate submit buttons
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* comments and aesthetics
* add URL-hash and forward-back navigation; link-to-tab now possible with hash
* leave-page-protection for user profile page
* resolve duplicated navigation protection problem
* UserRegistration.tsx typescript conversion
* reinstated single-page registration form
* Implement smart save button system and fix form submission bug
- Replace interpretFormStatus functions with SaveButton component
- Add SaveButton with animated states: Save → Saving → Saved → auto-revert
- Replace Reset form buttons with OutlinedButton and fix wrapping
- Add PROFILE_FORM_RESET action for clean local state resets
- Fix SwissArmyButton to use type="button" preventing accidental form submissions
- Remove messageElement rendering in favor of component-based UI
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* fix import bug in jsx
* fix form reset behaviour after successful save; disable reset button; tidy up
* tweaked SaveButton animation
* Fix form validation UI when using custom SaveButton
Replace checkValidity() with reportValidity() to restore proper form
validation behavior. When validation fails, the browser now automatically
focuses the invalid field and displays validation tooltips, matching the
original native form submission experience.
This fixes the regression introduced when switching from native submit
buttons to the custom SaveButton component.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Fix ProfileModal integration with refactored user forms
Replace deprecated `showChangePasswordBox` prop with `singleFormMode`
throughout the user profile form system. This fixes compatibility
between the ProfileModal and the newly refactored UserFormContainer/
UserAccountForm components.
Key changes:
- ProfileModal now passes `singleFormMode={true}` to UserProfileController
- Remove `showChangePasswordBox` prop from UserFormContainer and UserAccountForm
- Upgrade UserProfile.jsx to TypeScript with proper type definitions
- UserAccountForm always renders password section (only displayed in tabbed mode)
- Modal automatically hides when all required profile fields are completed
Note: Modal behavior tested locally - appears correctly and form saves
successfully. Modal should auto-dismiss when backend returns updated
user state with all required fields filled, but this is difficult to
test without database manipulation to create missing required fields.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* move privacy info link to above private info
* remove unused imports; remove duplicate PrivacyPolicy
* a few styling tweaks
* simplify css and update styles
* title styling and other styling updates
* add nav icons
* Save buton updates
* update confirm discard dialog styling
* yet another try at the save button
---------
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: asizemore <annsize@seas.upenn.edu>
* use theme in profile
* fixed save button for real
* simplify isGuest condition
* removed disableResetButton
* prevent Save button showing previous section's status
* Checkpoint commit for integration with new oauth API
* Cleanup and set new condition on person icon conditional
* Protect against undefined
* Remove user email line; not needed
* Add check for subscription banner
* Comment out last attempt; broke the site
* Add custom user icons (#1454)
* add usercheck and userwarn icons
* adjust css for tall user profile icons
* fix color and add margin for collapsed header
* fix guest logic
* use coreui colors for icons
* continue tweaking alignment
* fix height change between guest and logged in
* another tweak for positioning the user icon
* header layout adjustments
* less controversial spacing
* use ignore-existing so that we dont overwrite icons
* use specific version of svgr/cli
* removed commented line
---------
Co-authored-by: Bob <uncoolbob@gmail.com>
* Add more logic to subscription management page and first try at typeahead
* standardise save button for single form mode
* fix missing HTML5 form validation feedback
* Fix form validation for select elements and highlight missing required fields
- Fix HTML5 form validation to include select elements in validation check
- Add visual highlighting (red borders) for empty required fields in ProfileModal
- Update SingleSelect component to support className prop
- Add highlightMissingFields prop chain through user profile components
- Improve ProfileModal banner text to clearly indicate missing field requirement
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Improved verbiage via Steve and Ryan
* proof of concept update-and-submit-handler
* remove unnecessary condition
* added onSavedDisplayEnd callback to SaveButton
* renamed it to onSuccess
* Banner styling updates (#1457)
* adjust banner colors
* add cta buttons to banner
* use theming for button roles
* cleanup spacing and add story
* update theme palette everywhere
* forgot ortho
* update susbscription banner with new component
* add subscription banner button
* update subscription info banner
* fix hover background
* prop rename
* one last place to add new colors
* improve banner styling consistency
* banner listen to set theme level
* added personalized message
* improve logic
* update logic for user icon
* add UserGuest icon
* Checkpoint commit since seemingly almost there
* Implement some of Bob's changes and fix a bug or two
* prevent status icons from floating away
* Use new onSuccess prop
* handle join button action with history
* add icon to subscribed status in profile header
* unwrap UserSubscriptionManagement
* Fix up logic for subscription management
* Revert for compilation
* Get TypeAhead working
* Fix SaveButton setTimeout race conditions and modal timing issues
- Restructure SaveButton useEffect to prevent dependency loop with hasSuccessReverted
- Add useRef for reliable timeout cleanup and prevent overlapping timers
- Memoize onSuccess callbacks to avoid unnecessary re-renders
- Improve subscription modal UX text and timing
- Disable SaveButton in 'new' state for better UX
* make save button timeout reversion reliable
* remove onscreen debugging
* Refactor UserSubscriptionManagement conditional rendering
Move loading check to parent component (UserAccountForm) to enable
hooks usage in UserSubscriptionManagement. Make subscriptionGroups
prop required and remove early return.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* refactor so modal UX is less jarring
* fixed banner dismissal
* Fixes for updating page state when user changes subscription status
* subheading subscribed status now from store state, not form state
* some little things
* consistent use of database-backed user data
* more canonical modal behaviour
* move NumberedHeader to coreui
* layout and colors
* add links
* update styling for subscribed user
* update styles for leave group dialog
* move getSubscriptionGroups to a hook and standardise return value to array or undefined
* additional style updates
* wire in react-query for genomics-site
* fix Select colors
* add providers for mbio and clinepi
* nearly forgot ortho
* split UserMenuGuest from UserMenu
* added UserMenuGuest to HeaderNav
* run yarn and add lockfile
* add userloggedin icon (#1471)
* standardise userIsSubscribed logic and add proper test to UserFormContainer
* make use of UserLoggedIn icon
* fix broken registration form
* clean up announcement logic; was showing for guests
* Add first cut of infrastructure to delete account
* more fixes to broken registration form (and user identification form)
* Standardise bold styling on user profile tab contents headings.
* get started on useSubscriptions feature flag
* showSubscriptionProds feature flag
* add SHOW_SUBSCRIPTION_PRODS to .env example
* comment out subscription-info banner; it will come from backend/dashboard
* change account to profile
* typeahead cursor updates
* give breathing room to confirm leave group dialog
* swap subscription icon and improve verbiage
---------
Co-authored-by: Bob <uncoolbob@gmail.com>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Ryan Doherty <tech@conical.org>
Co-authored-by: Ryan Doherty <385683+ryanrdoherty@users.noreply.github.com>
(cherry picked from commit b285e63369f4e23e9fb1a9fd7ace2e6e47b8d9cf)