* Add username to onboarding
* Add margin to profile form error alert
* Update user controller for onboarding
Co-authored-by: Michael Kohl <me@citizen428.net>
* feat: v1 of the profile form
* feat: fix inputs and create a handleChange event
* feat: update the submit values to represent values from the form
* feat: ensure that errors and success is handled on send
* refactor: remove unused code
* feat: replace the old profile form with a new one
* fix: use the renames file
* refactor: safety net for groups
* chore: fix code climate issue
* tests: amend + add tests
* test: fix broken spec
* feat: update the setup for the test
* tests: refactored them to move the fake response into the before all
* feat: clunky way to quickly cater for color field since it was a quick and easy implementation
* feat: add a field.description to the color field
* refactor: pull some duplicate code into a new function
* chore: cater for a textarea field
* overflow issue
* refactor: use FormField instead of manual divs
* Update spec/requests/users_onboarding_spec.rb
Co-authored-by: Vaidehi Joshi <vaidehi.sj@gmail.com>
* Update spec/requests/users_onboarding_spec.rb
Co-authored-by: Vaidehi Joshi <vaidehi.sj@gmail.com>
* refactor: move out of method and into a constant
* refactor: user_onboarding_update to be more readable
* refactor: use current.save instead of declaring a new variable
* refactor: remove explicit check for bookean
* refactor: use request from '@utilities/http' instead :)
* refactor: no need for if with destructured groups
* refactor: move color field to its own component
* chore: remove colorfield now thats its a component
* fix: forgot about field
* feat: a text area component
* chore: remove textField function in favor of component
* refactor: checkbox refactor
* refactor: add a switch statement
* chore: move into a more organized folder
* fix: move the handler to props and off from field
* fix: add a conditional so we dont hit an error undefined method `success?' for nil:NilClass
* refactor: change from component to function
* feat: add a key attribute
* refactor: add role for readers
* refactor: remove unnecessary guard clauses
* refactor: use function instead of an arrow
* chore: document components
* test
* padding
* fixes
* test: fix the tests by using more general matchers
Co-authored-by: Paweł Ludwiczak <ludwiczakpawel@gmail.com>
Co-authored-by: Vaidehi Joshi <vaidehi.sj@gmail.com>
* Comment out redirect
* Back to where we were
* Add basic generalization to onboarding
* Update app/javascript/onboarding/Onboarding.jsx
Co-authored-by: Vaidehi Joshi <vaidehi.sj@gmail.com>
* Update app/javascript/onboarding/components/IntroSlide.jsx
* Update app/javascript/onboarding/components/ProfileForm.jsx
Co-authored-by: Vaidehi Joshi <vaidehi.sj@gmail.com>
* wip
* no comment
* tests
* typo
* typo
* crayons example page
* doc
* boxes fix
* fix
* Update index.html.erb
* Small refactor to return null when the modal is not visible.
* Update app/assets/stylesheets/components/modals.scss
Co-authored-by: Nick Taylor <nick@iamdeveloper.com>
* tiny fixes & improvements
Co-authored-by: Nick Taylor <nick@iamdeveloper.com>
* Dynamically render forward text in Navigation component
* Render either "Skip for now" or "Continue" on the FollowTags, ProfileForm, and FollowUsers components.
* Refactor the ProfileForm component to dynamically change the button text based on the form's state.
* Render specific button text for last onboarding slide
* Fix back arrow styles for accessibility
Also set an explicit width on the containing button around the svg.
* Use min-width to specify back-button size
* Move Terms & Conditions, CoC into Intro slide of onboarding
Closes https://github.com/thepracticaldev/dev.to/issues/6545.
* Rename ClosingSlide in Onboarding tests
* Rename EmailListTermsConditionsForm to EmailPreferencesForm
* Proper lint and prepend `v2:` to some onboarding components
* Move email preferences to last slide
Closes https://github.com/thepracticaldev/dev.to/issues/6550.
* Use crayons variables for padding
* Remove backToSlide function, rename buttonIsDisabled function
* Render the user's name on intro slide of onboarding
* Refactor terms + conditions form in onboarding view
* Style the back button using crayons design system.
* Remove redundant scroll styles (only need `overflow-y: scroll` here).
* Ensure that content is readable, and back button doesn't conflict with content.
* Ensure size of content is same size as "intro slide".
* Remove unnecesary inline styles, use CSS class instead.
* Fix missing userData issue
* Onboarding test cleanup, inline greeting instead of in a variable
* Improve onboarding UI and UX (P1)
- Introduce Crayons variables
- Remove unnecessary CSS files to have just one CSS file
* Add new onboarding tests
* Update onboarding yarn test to reflect updated class names
* Reduce code duplication in onboarding tests
* Update variable names for consistency
* Improve test descriptions and format
* Refactor a useless test
This test was fairly pointless, but hopefully with this refactor it
could detect a regression? Although, I think it's really just testing
the that the Preact framework's state mechanism is working the way we
expect it to, but it might be worth leaving this test in.
* Add jext-axe package and introduce a11y testing
Automated a11y testing is NOT comprehensive. We cannot expect this to
even scratch the surface of potential a11y issues.
However, we can expect to find a percentage of issues that are currently
flying under the radar. Adopting some automation around a11y testing
also allows us to use CI to find a11y regressions -- which should be
really handy.
I've never really used Jest before, and Preact seems to make it a little
more complicated, but as far as I can tell, this is a decent way to add
at least some minor automated a11y testing.
* Add doc about automated a11y tests
* Fix some eslint complaints
* Fix some basic a11y issues in onboarding
- Missing a main element
- TODO to enable zooming
- Rename a duplicate ID attribute
I may need some context on the zooming thing, why did we decided to
disable that in the first place? It is a pretty bad a11y issue, we will
need to fix whatever that is a workaround for instead of making it
difficult for some people to use our onboarding.
* Update screenshots
* set up refactored onboarding
* create onboarding page
* add in first slide and change slide functionality
* fix test suite
* profile refactor
* profile refactor
* refactor to api
* add checkbox fields
* add checkbox fields
* remove puts
* add basic css
* add styling
* add redirect
* hide back and next at first and last slides
* test refactored onboarding
* test refactored onboarding
* remove article edits
* Fix schema
* Add deleted file back in
* Add default value for checked_t&c column
* Adjust HTML structure to keep nav buttons in place
* Fix ESLint issues on Onboarding.jsx file
* Handling for undefined or empty followedTags on getUserTags
* Fix codeclimate issues
* Fix codeclimate issues
* Fix more codeclimate issues
* Fix more codeclimate issues
* Update Onboarding snapshots
* Uncheck the CoC and T&C checkboxes on render
* Update snapshots
* Return false instead of raising error
* Update spec to use new onboarding
* Redirect to onboarding if haven't seen it yet
* Prevent redirect to onboarding from /signout_confirm
* Use assign_attributes instead of saving twice
* Move COC and T&C checkbox page to second slide
* Add 'go back to original page' functionality
* Reuse ready prototype logic
* Keep track of the last visited onboarding page
* Fix email subscription bug
* Fix overflow issue for tags page
* Remove height to prevent page container scrolling
* Check for CoC and T&C for displaying onboarding
* Add InstantClick redirect and preserve referrer in client
* Fix async update + check by using localStorage
* Turn off onboarding for tests
* Finalize design for onboarding
* Finalize design for onboarding
* Make bulk follows during onboarding
* Fix bulk follow test