* add tsc compile
* fix TS warning around headingLevel
* Temporary fix around availableFor type error
- correlated to fix needed in ticket 2000
* Add copy update from CEJST pages - STATUS doc
- Add a period in Get the Data box
- Update unselected side panel text
- Update text under explore the map
- Content and styling for territories note
- persistent FAB - “Help improve the tool”
- Water needs to be “Water and Wastewater”
- Styling on demographics ( show ) => (show)
- Update age in demographics to be Elderly over 65
- Wildfire description is not correct
- Lead paint description needs to be updated
- remove bullet from How you can help
- Footer - remove RFI
- Footer - remove Eng cal
- add sign up link
* Update side panel non-selected copy
* Add back PEC button to each main page
* Remove console logs from J40Header
* Fix DOM warning on About page
- can't have <li> in <p>
* Fix nested DOM warning on Explore page
- Modify ExploreDataBox styling
* Update side panel non-selected with icons
- update height on mobile
- update snapshots
* Adds the PrioritizationCopy and TractPriotization
- adds both components
- removes logic around selecting AK data points
- update snapshots
* Add tests for TractPrioritization
* Adds tests for PrioritizationCopy
* Add income icon and tilde
- this is dependent on imputed income and adjacency
* Add tool tip to low income icon
* Update snapshots
* Removing AreaDetail test to allow tooltip library
- This library react-tooltip creates random DOM ID which will not allow for snapshot testing as he IDs change on each build. Due to time constraints, we simply removed the AreaDetails test. The AreaDetails component is made up of sub component and each sub component has tests so this is low risk.
- This is a temporary solution. Some longer terms solutions may be
1. Remove this library and get the USWDS tool tip to work
2. Re-factor the areaDetail.tests.tsx snapshot tests to do more DOM assertions rather than snapshots
3. Some combination of the two.
* Fix Tribal percentage error
* Updates to Spanish Site
* update bad edit
* take feature flag out
* removing feature flag from Language component
* bad return
* updated snapshots
* Update unit tests
Co-authored-by: TomNUSDS <tomn.usds.opensource+tomnusds@gmail.com>
* will replace mapbox logo (#1477)
* Replace maplibre logo with mapbox
* change the logo go to mapbox
* Add CodeQL and modify mapbox logo via useRef()
* Make side panel formula more apparent (#1481)
* Add ExceedBurden and CategorySpacer
- create ExceedBurden component that is used twice
- create a .categorySpacer class for the AND component
- modify indicator styling to work with background higlighting
- add BE stubs for Burden booleans
- remove Indicators header
- add copy to intl
* Add comments on disadv. indicator
- darken bg color
- add a border
- bold the text
* Adds indicator arrow and sub text to sidepanel
- add threshold to IndicatorInfo
- update SASS for indicatorValueCol
- update tests
- add constants to intl
* Make disadv indicators bold
- add 1px margin between indicators
* Add BE signals for new sidepanel
- tested with staging backend
* Add staging hash to URL
* Fix poverty backend signal
- refactor backend signals in constants file
* Make exceed burden value bold
* Refactor indicator values
- remove arrows and subtext when value is N/A
- Show -- when value is N/A
- intl alt tags in indicator
- fix alignment of arrows
- update snapshots
* Revert settings.json file
* revert settings file again
* Refactor what is displayed when data unavailable
- add an unavailable icon
- add data is not available subtext
- modify low income threshold
- update snapshots
- factor out rendered logic to JSX functions
- update image alt tags and intl
* Refactor Indicator component to unit test
- Add unit test for Indicator value icon
- Add unit test for Indicator value sub-text
- update snapshots
* Add de-coupled BE signals
* Rebase hotfix
* Fix indicator value 0 shows N/A icon
- remove coercion of 0 as null
- make components check null / failure case first and default all else
- update unit test to account for this use case
- update snapshots
* Add null check for percentage suffix
- update unit tests
- update snapshots
* remove cypress zoom test
- intermittent failure continue
* revert cypress to 8.3.0
* Revert cypress-cucumber
* Add Chrome to frontend deploy action
* Update logo css classname after update to maplibre (#1482)
* Add new wording to the map panel that appears upon load when no tract is selected and Outstanding CEQ changes to sidepanel (#1483)
* Add new side panel unselected tract
- add new icons
- refactor old component
- follow component folder pattern
- update snapshot tests
- add to intl
* Add bold to text, add spacing and correct typos
* Add tabindex to sidepanel content to pass a11y
* Refactor i18n anti-patterns on explore tool page
- add i18n patterns for nesting
- add i18n pattern for partial strings
- add i18n rich-text functions
- add i18n pattern for minimal context
- add i18n pattern for dates
- add i18n pattern for numbers
- add i18n pattern for centralizing rich text functions
- add i18n patter for description
- add i18n pattern for ids
- see shared drive file J40 Localization Patterns for status on refactor
* Remove links of expired public engagement sessions
- allow cypress tests to pass
* Update snapshots for public enagement page
* Copy updates to non-selected side panel
- update snapshots
* Updates to side panel copy
- ag loss and building loss text
- clean transit
- NPL RMP sites
- proportion to percent
- update snapshots
- updates to es.json
* Updates from QA
- make title smaller
- make margins above icons smaller
- add bottom margin on container
- add census before tracts in copy
- update snapshots
* Update snapshot after rebase
* disable max-len on description fields on i18n copy (#1487)
* Remove color key from Explore the tool page (#1484)
* Remove color key
* Add comment to Language component
* Move tribal note copy to meth page
- adjust responsive sizing props on Grid to allow for proper mobile viewing on Explore page
* Add responsive size to text under map
- reduce z-index of territory focus control so that it doesn't go over the survey button on mobile
* Rewrite the two "notes about" the "low" datasets (#1489)
* Refactor all copy to adhere to recommended patterns
- remove LowIncome component
- add intl README
- update snapshots
* Fix key error missing in datasetCard
- update type in IIndicators
- update snapshots
* Add two notes on low dataset cards
- refactor DatasetCard to standard component pattern
- add a note to the interface
- update snapshots
* Add function comment to force re-build
* Update missing sass module file name
* Update sidepanel non-selected copy (#1495)
* Update sidepanel non-selected copy
- update snapshots
* Update URL in deploy FE for cypress test
* removing trailing slash
* Add wording to UI that calls out improvements to display of census tract information (#1492)
* Adds census tract alert on all pages
- add i18n text
- updates snapshots
- makes public engagement page a fast link
* Style the Alert to have more space around it
* Update copy on Alert
- update snapshots
* Swap gerkhin order
* Set Alert to expire on Apr 15th 2022
* Add WHEJAC meetings (#1501)
* Add WHEJAC meetings
- add expired icons
- automatically load expired icons when event has passed
- update snapshots
* Update public engagement button
* Remove public eng gherkin tests
- need to troubleshoot why these are failing
* Remove the before CEQ in copy
* Make the count of thresholds exceeded on the side panel more clear (#1503)
* Update category / thrsh count in side panel
- connect BE signal of CC to side panel
- i18n functions to call from AreaDetail component
- update snapshots
-
* Update send feedback - color and icon
- update snapshots
* Update both exceed statements in sidepanel
- update snapshots
* Update copy for higher ed and high school (#1502)
* Update copy for higher ed and high school
- update dataset cards
- update taskforce card AND
- update side panel indicator titles
- add i18n for dataset cards title
- update snapshots
* Update threshold values for Higher ed and HS.
- update snapshots
* Update AND clause
- missing 'of' in copy
- update BE signal for non-higher ed enrollment signal
* Attempt to fix minimist CVE
- udpate npm to 8.5.5
- update node to 14.17.5
- update all minor versions to latest
- minimist to 1.2.6 (could still be CVE)
- set docker frontend to use cdn by default
- update all dependencies
- update survey button launch svg color
- update to zoom / territory buttons
- search icon changed
- update Feature type from maplibre-gl
- use default search icon
* Rollback maplibre to 1.15.2
* Revert maplibre to 1.14.0
* Rollback some changes
- rollback uswds
- search icon is back
- update snapshots
- rollback docker to be cdn by default
* Add intl pre-commit hook and update GHA
- add Husky lib
- add pre-commit script
- detect warning on extraction and abort commit
- update deploy staging yml to show message that en.json was modified
* Test if block of message post
- test if the message is posted even when checking a file with no changes
* Add back in full deploy action
* Add back en.json
* Add additional base layers behind feature flags
- add voyager base layer under vy
- add positron base layer under ps
* Add mapbox base layer
- requires API token
* Add mapbox layers with API token in URL
* Add base map layers from mapTiler
- add comments to mapping components
- add mapTiler base maps behind feature flags
* Comment out intermittent cypress test failures
* Add flag to remove label layer
* Add MapBox Raster and Vector tiles
- tilesets are commented out until more information is provided by Mikel
* Remove white layer on non-prioritized features
- removes makePaint function
- adds Todo to renaming constants
* refactor all contants to have standard naming
- renames layers, sources, colors, opacity, and zoom
- Adds a large amount of comments to understand how this map works
* remove some instances of mapbox-gl
- this the first step in having only maplibre-gl being used in app
* Remove chroma.js
- chroma.js was used in the fill function of makeStyle. This was used to create a gradient between non-prio, threshold and prio. Since these 3 step values are no longer needed this function along with the libraries it used is not removed.
* Add comments on mapbox base layer
- adds apiaccesstoken
* set basemap to mapbox and move all layers to Map
* Add API KEY to .env, adjust opacity of prio'd CBTs
- remove this function as it is no longer being used
- add comments on map
- create a high layer opacity and low layer opacity
- add API KEY to prod and dev .env
- add MapBox API key to deploy_staging
* add logging to troubleshoot API KEY
* Remove temp echo of API KEY
* Add GHA env var to gatsby config
* Remove API KEY from GitHub and GHA
* Extract 404 page copy to intl
* Move all copy to data copy folder and add tests
- Add test:intl-extraction script
- Fix certain defaultMessages not appearing
- update snapshot
* Add gherkin tests for page navigation links
- test that every page will load when navigating from any other page
- update snapshots
* Add gherkin workflows 2 - 5
- add test for Federal program officer key information and CTA
- add test for Community members key information and CTA
- add test for Send feedback
- add test for Join the Open Source community
- update snapshots
* Add gherkin tests for footer links
- add footerlinks feature gherkin file
- adds a comment to the hyphenizeString()
- adds keyword functions for footer
- adds data-cy tags to footer component
- updates snapshots
* Adds workflow to learn more about EO
* Add gherkin test for dataset links
- add data-cy tags to dataset sections
- modify Cy command functions names
- update snapshots
* Add cypress test to deploy_staging.yml
* Add working directory env
* Remove keywords.js from cypress test
* Add a Then step to all About and Footer tests
* Refactor step definitions
- use globalStepDefinitions
- rename keywords to commonSteps
- remove keyword from exclusion list
* Add a11y tests in cypress for methodology page
- update cypress to version 8.5
- add HTML lang the <head> element
- change process list headings to h4
- add alt tag to download image icon
- move <GovBanner> into <Header>
- add documentation around a11y testing
* Add cypress a11y tests for cejst page
- add alt icon for mapIntro page
- change legend to be a normal div
- add a class that mimics the h4 styles
- remove superfluous styles
* Add cypress a11y tests for contact and 404 page
* Update snapshots
* Move static text in footer to copy folder
* Add cypress a11y test to About page
- add required h1 tag
- updates snapshot
* Add site_url.xml and modify robots.txt file
- adds plugins for robots.txt and sitemap
- remove env.local and will add env.production
- modifiy all yml files (docker and GHA) to specify new env variables
- refactor env variables to either DATA_SOURCE, SITE_URL or PATH_PREFIX
- set defaults for env variables in gatsby-config
- remove timeline component
- will add blank index page
- update README on info on env variables
* Add plugin to allow custom env vars
- allows system env vars, ie, DATA_SOURCE on client-side application
* Update displayed URLs in GHA to new CDN (d29)
- also updates the blank index.html
* Correct spacing
* Set SITE_URL to new CDN for robots.txt
* Remove SITE_URL as this is set by GHA
* Update README around docker and env vars
* Add basic accordion in AreaDetail
* Refactor AreaDetail to use a Grid layout
- adds useWindowSize to detect window resizes for mobile view
- Map and AreaDetail to use Grid
- removes some component styling from J40
- updates snapshot
- MapWrapper to use Grid
* Add custom Accordion styling
- make J40 map a 9:3 Grid layout split
- override native Accordion heading styles
- make the Accordion multi-selectable
- add some dummy data for indicators
* Update AreaDetail to match design
- remove styles in AreaDetail
- increase height of MapInfoPanel
- add Accordian items (indicators)
- updates snapshot
* Add a Beta Tag to the logo
* Change the line height on indicators descriptions
* Update package-lock after the rebase
* Remove threshold from MapLegend
- move feature selected border color to utils
- remove all tooltip logic
- remove all styles associated with tooltips
- add legend label and descript to constants
- refactor tests to be snapshots
* Add borders between additional indicators
* Modify copy and update styles
- add the ordinal superscript back
- update the copy
- update the snapshots
* Add additional indicators keys
* Connect indicator keys to the UI
- update the areaDetail snapshot
* Render additional indicators accordion open onLoad
- update snapshot
* Update copy on About page
* Update copy on indicator descriptions
- update snapshots
* Update the "How you can help section"
- update the snapshot
* Add a comma to "ZIP file will contain..."
* Add the Datasets section to the methodology page
- update snapshot
* Update Methodology process list to trussworks
- remove custom process list
- remove custom CSS from global file
- change copy
* Modify layout of Methodology to using Grid
- modify Dataset section to use Grid
- remove outdated component CSS
- update the snapshot
* Update copy based on product feedback
- update snapshots
* Remove Accordions
- updates snapshots
- white CBG groups will show "Not community of focus"
* integrate gherkin/cucumber w/ cypress
- change cypress.json config from e2e back to standard integration
- add cypress-cucumber-preprocessor
- add integration test of about page
* add a title to each page
* add intl to the 404 page
* Refactor explore tool page
- add intl to static strings
- replace component css with <Grid> layout
* Add title to contact page
* add intl to title of page
* Add gherkin tests for nav to about page
- navigate from any page to the about page
- ensure each link has the title correct on that page
* Revert "dockerize front end (#558)"
This reverts commit 89c23faf7a.
* dockerize frontend
- adds score server and website docker compose
- creates docker ignore
- adds .env.* for dev, prod and local
- adds dockerfile for website
- adds env to gatsby-config
- adds hostaddress to develop / start script
- adds istructions in README for running docker
- replaces fixed URLS with ones based on env vars
- creates a score server dockerfile
* updates README to change map tiles source
* adds env DATA_SOURCE:development to deploy GHA
* capitalize readme
* initial docker
* adds concurrency to be able to run yarn install
* adds 0.0.0.0 to allow docker access
* adds web service
* adds env variables
* updates root path
* adds volumes
* adds docker to readme
* adds score server client docker
* docker updates after convo
* speeds up build and removes env vars
* adds client as volume
* updates to docker setup
* checkpoint
* updates the docker file
* adds .env.* files
* replaces serve with http-server for cors
Co-authored-by: Jorge Escobar <jorge.e.escobar@omb.eop.gov>
* Fix footer alignment
* Can't really tweak alignment using trusswork's library.
* Reimplement parts of layout to control grid better.
* Removed trusswork's weird mobile expanding footer menu.
* Update snapshot
* Add some extra bottom padding for mobile view
* Replace fork of trussworks react/uswds with ^2.0.0
Since we're not using trusswork's `<Footer>` component anymore, we should be able to stop using our branch that fixes issues it has with Gatsby.
* Refactor alerts
* Remove J40Alert and classes
* Make AlertWrapper the primary component.
* Props to show one or both alerts
* Unit tests to verify one or both works correctly
* Update pages to use AlertWrapper
* Remove unused J40Aside.
* Remove dead code from index
* initial map side panel
* componentize MapSidePanel
* remove selection from J40Map
* adds isFeatureSelected to toggle component
* filters data from server for client UI
* styling and refactor
* added TODO
* adds styling to intro and pairing feedback
* add mobile styling
* adds popup back to fs feature flag
* adds tests and aria roles
* makes mobile content same as desktop
* prettier update
* initial e2e mapSidePanel test
* adds cypress tests on desktop and mobile
* adds sass util and updates cypress tests
* cleans up tests
* reverts tsconfig file
* fixes map alignment
* renaming and using constants
* renaming sidePanel to infoPanel
* intl messaging
* adds snapshot testing and utility sass file
* PR feedback
- adds intl messages
- adds data-cy attr to cy tests
- snapshot testing for unit tests
- fixes bug where side panel extends past the map
- moves all wrapper content in MapWrapper
* logs isMobile to troubleshoot deployed PR
* adds react-device-detect for isMobile detection
* adds new instance of map for mobile
* adds instance
* adds isMobile to state
* tests the fix for mobile map view on PR
* PR review feedback
- localize MapIntroduction
- update snapshot tests
- QA feedback
- constants.isMobile points to react-device-detect
* Fixed es.json
- converted remaining english to spanish in file so as to check more locations.
- the `formatjs compile` for Spanish was failing converted back to english for now. build does the correct thing, so it's more just to keep things correct in source.
* add support for eslint-plugin-formatjs
- eslint rules for formatjs
- we are mostly protected by typescript checking, but this is a nice sanity check.
* End-to-end localization working
* Update package.json
* fix FormattedMessage confusion by using the `FormattedMessage` from `gatsby-plugin-intl` NOT `react-intl`
* TODO: `client/src/intl/es.json` should be generated from a translation tool.
* Update package-lock.json
* Fixes#280 - adds territory focus buttons for Alaska, Hawaii, Lower 48, and Puerto Rico to enable easy zoom to these locations
* Adding tests - Specifically:
* Adding VSCode debug command for Cypress and debug port specification
* Disabling CORS on local tests
* Adding waitForMapIdle Cypress test helper
* Adding constants for easy change and access
* switching to MapLibre (see more at https://github.com/usds/justice40-tool/issues/299)
* Removing traces of OpenLayers
* Review comments - removing unused properties, component
This is a pre-requisite for addressing issue #280 and other similar control-related tickets
* Fixes#66: As a developer, I want to limit the audience
that sees new features, so that we can control
the message and positioning of our tool.
Implements simple feature flagging via URL parameters.
Provide "?flags=x,y,z" to enable flags x, y, and z.
* Fixing type to use Location instead of URL
* Updating README with info on how to use feature flags
* using the higher-level react-testing-library, and regenerating snapshot - renders real DOM elements
* Basic e2e testing with Cypress, following the guide here: https://www.gatsbyjs.com/docs/how-to/testing/end-to-end-testing/ ; needed to install cypress-local to avoid jest-cypress collision
* Adding accessibility testing support and basic a11y tests
* adding failure logging
* Adding nightly test run
* Fix misc stuff from lighthouse (#81)
* Removing local-cypress, relying instead on a combination
of type reference and eslint-plugin-cypress;
adding cypress to jest ignore paths to avoid conflict -
`npm test` is now jest-only, use `npm run test:e2e` to run cypress tests
* updating comment to clarify timezone
* Fix misc stuff from lighthouse
- Icons in list were resizing to be too small.
- Added robots.txt (full exclude for now)
- Add favicon.ico placeholder
- Added page title using helmet (react-helmet + gatsby-plugin-react-helmet)
Note: not sure if react-helmet can be in dev section of package.json?
* Move helmet to header file
- Moved `<Helmet><title>{title}</title></Helmet>` to Header.
- Added ts support for Helmet.
* Fix title header
* Basic Layout
- Merge with main into new branch
- Most of main content and footer working.
- Could not get fixed branch of trussworks to `npm install` correctly, so reverted back to public version. (`trussworks/react-uswds#kh-serverside-rendering-fix-1250"`)
TODO:
- stack sgv warning+cloud icons
- get timeline image (which as text that needs to scale)
- localization support
- move icon includes out of header?
- start converting elements over to trussworks
* Cleanup
- removed unused styles
- added some better comments
* Revert trussworks to fixed branch
* Update package-lock.json
* Temporarily pointing toward personal fork until SSR issue has been addressed
* Update J40Footer.spec.tsx.snap
* setting jestEnvironment to the proper 'jsdom' value, needed for snapshot tests
* lingering prettier fix
* small version bump
Co-authored-by: Nat Hillard <Nathaniel.K.Hillard@omb.eop.gov>
Addresses #11 item "Linting/formatting (eg eslnt, prettier)":
* Adding eslint, prettier, and config targeting Google, typescript, and both nodejs and client builds
* Addressing linter-found issues
* Adding lint and lint:fix commands
* Adding documentation
* Renaming workflow and adding lint check
* Adding documentation about VSCode linting/formatting, ran formatting on a few files, set up exclude list for gatsby develop, setup build to fail on error
Addresses #58 , "As a member of the public, I want to see J40's website live on the internet, so that I know it's real!" - hosting on github pages for now as a temporary measure. This fix does NOT: 1) add .gov domain hosting, or 2) post to the geoplatform s3 bucket. This will need to happen in a subsequent fix.
The changes made specifically to enable this for now:
* Adding github action to build, test, and deploy on pushes to client/
* Adding path prefix to build gh-pages at https://usds.github.io/justice40-tool/
* (Temporarily) pointing to fix branch for trussworks to enable SSR building
* Removing the workaround for the above bug in gatsby-node.js
* Setting build target to be 14.x due to version number limitations
* Adding gh-pages dependency, deploy action for manual deploy
* Force renaming J40header -> J40Header and J40footer -> J40Footer due to Linux case sensitivity
Integrate gatsby-plugin-intl for internationalization
Replaces static text with `intl.formatMessage` call and Links with `gatsby-plugin-intl` equivalent
Note: `npm install` now requires `--force` to install the latest `gatsby-plugin-intl` as it doesn't explicitly support gatsby3.0
* Addresses issue #16 -
Add styles via sass and module imports
Adds typed scss imports via gatsby-plugin-sass.
Makes use of .d.scss file generated by gatsby-plugin-scss-typescript,
but avoids importing that directly while they work out issue in gatsby v3.
* adding vscode config for easier local debugging