* adds focusTrap wrapper to preact Modal component * add view specific code for focus trap in admin add nav link * add script to return a focustrap toggle, use in add nav link modal partial * add trap to edit nav link modal * add handlers for sign up modal * update modal controller for admin section, update nav link modals to use * update other admin modals with new data values for trap * remove unneeded erb script file * remove unneeded target * refactor to remove extra unneeded param * remove duplicate code, store getFocusTrapToggle in window * trap focus in comment and bookmark showModal instances for not logged in user * remove need for activator id * clean up id refs no longer needed * remove custom code and re-use focsu-trap lib * update storybook docs * update default export in focusTrap * prevent close button click triggering a modal toggle twice * ensure if user navigates from a modal the trap is deactivated * add jsdoc comments and add dynamic import * ensure admin controller modal traps are cleaned up on disconnect * update sign up modal to use crayons * update modal controller and admin nav links modals to use preact modal * update profile fields modals for new controller * tweak styling of sign up and admin modals to match previous * update listings modal to use crayons modal, adapt focus trap to work with click outside * memoize deactivate callback to ensure modal can be presented on first page load * add missed focustrap changes * fix focus trap issues in onboarding flow * refactor onboarding focus trap, remove getFocusTrapToggle * tweaks for styling and article modal toggle * add click outside tests to modal * add cypress tests for the login modal * update liquid tag tests affected by change * refactors to address review comments * fix issue with login modal presented twice on comment add * change ids to selectors in admin modals * small pr comment refactors * add listings e2e tests * add nav link modal tests * fix issue with help modal * tweak to fix ui bug from merge * remove context from showLoginModal * rename toggleModal * rename state property for clarity Co-authored-by: Nick Taylor <nick@dev.to> |
||
|---|---|---|
| .buildkite | ||
| .gems | ||
| .github | ||
| .vscode | ||
| .yarn/releases | ||
| app | ||
| bin | ||
| config | ||
| cypress | ||
| datadog | ||
| db | ||
| docs | ||
| lib | ||
| log | ||
| public | ||
| scripts | ||
| spec | ||
| vendor | ||
| .codeclimate.yml | ||
| .dockerignore | ||
| .editorconfig | ||
| .env_sample | ||
| .erb-lint.yml | ||
| .eslintignore | ||
| .eslintrc.js | ||
| .gitattributes | ||
| .gitdocs.js | ||
| .gitignore | ||
| .gitpod.dockerfile | ||
| .gitpod.yml | ||
| .nvmrc | ||
| .postcssrc.yml | ||
| .prettierignore | ||
| .prettierrc.json | ||
| .rspec | ||
| .rubocop.yml | ||
| .rubocop_todo.yml | ||
| .ruby-version | ||
| .simplecov | ||
| .slugignore | ||
| .travis.yml | ||
| .validaterc | ||
| .yardopts | ||
| .yarnrc | ||
| babel.config.js | ||
| CODE_OF_CONDUCT.md | ||
| config.ru | ||
| container-compose.yml | ||
| Containerfile | ||
| CONTRIBUTING.md | ||
| cypress.dev.json | ||
| cypress.json | ||
| docker-compose.yml | ||
| Dockerfile | ||
| empty-module.js | ||
| Gemfile | ||
| Gemfile.lock | ||
| Guardfile | ||
| jest.config.js | ||
| jsconfig.json | ||
| LICENSE.md | ||
| package.json | ||
| postcss.config.js | ||
| Procfile | ||
| Procfile.dev | ||
| Procfile.dev-hot | ||
| Rakefile | ||
| README.md | ||
| release-tasks.sh | ||
| SECURITY.md | ||
| svgo.config.js | ||
| testSetup.js | ||
| yarn.lock | ||
Forem 🌱
For Empowering CommunityWelcome to the Forem codebase, the platform that powers dev.to. We are so excited to have you. With your help, we can build out Forem’s usability, scalability, and stability to better serve our communities.
What is Forem?
Forem is open source software for building communities. Communities for your peers, customers, fanbases, families, friends, and any other time and space where people need to come together to be part of a collective. See our announcement post for a high-level overview of what Forem is.
dev.to (or just DEV) is hosted by Forem. It is a community of software developers who write articles, take part in discussions, and build their professional profiles. We value supportive and constructive dialogue in the pursuit of great code and career growth for all members. The ecosystem spans from beginner to advanced developers, and all are welcome to find their place within our community. ❤️
Table of Contents
- What is Forem?
- Table of Contents
- Community
- Contributing
- Getting Started
- Developer Documentation
- Core team
- Vulnerability disclosure
- License
Community
For a place to have open discussions on features, voice your ideas, or get help with general questions please visit our community at forem.dev.
Contributing
We encourage you to contribute to Forem! Please check out the Contributing to Forem guide for guidelines about how to proceed.
Getting Started
This section provides a high-level quick start guide. If you're looking for the installation guide, you'll want to refer to our complete Developer Documentation.
We run on a Rails backend, and we are currently transitioning to a Preact-first frontend.
A more complete overview of our stack is available in our docs.
Prerequisites
Local
- Ruby: we recommend using rbenv to install the Ruby version listed on the badge.
- Yarn 1.x: please refer to their installation guide.
- PostgreSQL 11 or higher.
- ImageMagick: please refer to ImageMagick's installation instructions.
- Redis 4 or higher.
- Elasticsearch 7 or higher.
Containers
Linux
- Podman 1.9.2 or higher
- Podman Compose 0.1.5 or higher
OS X
Installation Documentation
View Full Installation Documentation.
Developer Documentation
Check out our dedicated docs page for more technical documentation.
Core team
- @benhalpern
- @jessleenyc
- @peterkimfrank
- @maestromac
- @zhao-andy
- @lightalloy
- @rhymes
- @jacobherrington
- @mstruve
- @atsmith813
- @citizen428
- @nickytonline
- @joshpuetz
- @vaidehijoshi
- @juliannatetreault
- @ridhwana
- @fdoxyz
- @msarit
- @jdoss
- @cmgorton
- @andygeorge
- @phannon716
- @katiedavis
- @s_aitchison
Vulnerability disclosure
Forem is the open source software which powers DEV.
We welcome security research on DEV under the terms of our vulnerability disclosure policy.
Acknowledgments
Thank you to the Twemoji project for the usage of their emojis.
License
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Please see the LICENSE file in our repository for the full text.
Like many open source projects, we require that contributors provide us with a Contributor License Agreement (CLA). By submitting code to the Forem project, you are granting us a right to use that code under the terms of the CLA.
Our version of the CLA was adapted from the Microsoft Contributor License Agreement, which they generously made available to the public domain under Creative Commons CC0 1.0 Universal.
Any questions, please refer to our license FAQ doc or email yo@dev.to.
Happy Coding ❤️