* 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