From 7daa5edc1e8a1a5eb3ac8ddc315b5deac026ba2a Mon Sep 17 00:00:00 2001 From: Daniel Date: Thu, 5 Dec 2024 11:29:18 -0500 Subject: [PATCH 01/10] Add initial goal page with footer and breadcrumbs --- config/graphql_compose.settings.yml | 22 +- config/pathauto.pattern.goal.yml | 22 ++ src/frontend/components/field--goal-type.tsx | 28 +++ src/frontend/components/field--logo.tsx | 19 ++ src/frontend/components/layout.tsx | 7 +- src/frontend/components/node--agency.tsx | 7 +- src/frontend/components/node--goal.tsx | 79 ++++++++ src/frontend/components/usa--breadcrumb.tsx | 28 +++ src/frontend/components/usa--in-page-nav.tsx | 38 ++++ src/frontend/lib/types.ts | 2 +- src/frontend/package-lock.json | 191 ++++++------------ src/frontend/pages/[...slug].tsx | 12 +- src/frontend/pages/agencies.tsx | 2 + src/frontend/pages/goals.tsx | 126 ++++++++++++ src/frontend/pages/index.tsx | 5 +- .../styles/components/field--goal-type.scss | 18 ++ src/frontend/styles/project-styles.scss | 1 + src/frontend/styles/style.scss | 6 +- src/frontend/styles/uswds-settings.scss | 2 +- 19 files changed, 460 insertions(+), 155 deletions(-) create mode 100644 config/pathauto.pattern.goal.yml create mode 100644 src/frontend/components/field--goal-type.tsx create mode 100644 src/frontend/components/field--logo.tsx create mode 100644 src/frontend/components/node--goal.tsx create mode 100644 src/frontend/components/usa--breadcrumb.tsx create mode 100644 src/frontend/components/usa--in-page-nav.tsx create mode 100644 src/frontend/pages/goals.tsx create mode 100644 src/frontend/styles/components/field--goal-type.scss diff --git a/config/graphql_compose.settings.yml b/config/graphql_compose.settings.yml index 81f8216b..fc675994 100644 --- a/config/graphql_compose.settings.yml +++ b/config/graphql_compose.settings.yml @@ -8,22 +8,13 @@ entity_config: edges_enabled: true routes_enabled: true image_style: - large: - enabled: true + 1x1_third: + enabled: false media_library: enabled: true - medium: - enabled: true thumbnail: enabled: true - wide: - enabled: true media: - audio: - enabled: true - query_load_enabled: true - edges_enabled: true - routes_enabled: true document: enabled: true query_load_enabled: true @@ -65,8 +56,6 @@ entity_config: routes_enabled: true article: enabled: false - coalition: - enabled: false division: enabled: false period: @@ -114,9 +103,6 @@ entity_config: enabled: false field_config: media: - audio: - field_media_audio_file: - enabled: true document: field_media_document: enabled: true @@ -144,6 +130,10 @@ field_config: enabled: true field_id: enabled: true + field_parent: + enabled: true + field_plan: + enabled: true field_topics: enabled: true plan: diff --git a/config/pathauto.pattern.goal.yml b/config/pathauto.pattern.goal.yml new file mode 100644 index 00000000..421a2e29 --- /dev/null +++ b/config/pathauto.pattern.goal.yml @@ -0,0 +1,22 @@ +uuid: 2e0e5832-3a42-4b66-8451-092421bc836e +langcode: en +status: true +dependencies: + module: + - node +id: goal +label: Goal +type: 'canonical_entities:node' +pattern: '[node:field_plan:entity:field_agency:entity:url:path]/[node:title]' +selection_criteria: + e9d32031-790b-4038-889f-0c7217afe139: + id: 'entity_bundle:node' + negate: false + uuid: e9d32031-790b-4038-889f-0c7217afe139 + context_mapping: + node: node + bundles: + goal: goal +selection_logic: and +weight: -5 +relationships: { } diff --git a/src/frontend/components/field--goal-type.tsx b/src/frontend/components/field--goal-type.tsx new file mode 100644 index 00000000..007f1de4 --- /dev/null +++ b/src/frontend/components/field--goal-type.tsx @@ -0,0 +1,28 @@ +export function FieldGoalType({field_goal_type}) { + let goalTypeName = ""; + let goalTypeClasses = ""; + switch (field_goal_type) { + case "apg": + goalTypeName = "Agency priority goal"; + goalTypeClasses = "bg-primary-vivid"; + break; + case "strategic": + goalTypeName = "Strategic goal"; + goalTypeClasses = "bg-base-darkest"; + break; + default: + goalTypeClasses = "bg-base"; + break; + } + + return ( +
+ + {goalTypeName} + +
+ ); +} + + + diff --git a/src/frontend/components/field--logo.tsx b/src/frontend/components/field--logo.tsx new file mode 100644 index 00000000..2d306266 --- /dev/null +++ b/src/frontend/components/field--logo.tsx @@ -0,0 +1,19 @@ +import Image from "next/image"; +import { absoluteUrl } from "lib/utils"; + + +export function FieldLogo({field_logo}) { + return ( + {field_logo.name} + ); +} + + + diff --git a/src/frontend/components/layout.tsx b/src/frontend/components/layout.tsx index c6cc1b3a..1dd965df 100644 --- a/src/frontend/components/layout.tsx +++ b/src/frontend/components/layout.tsx @@ -1,7 +1,6 @@ import Link from "next/link"; - -import { PreviewAlert } from "components/preview-alert"; import { GovBanner } from "@trussworks/react-uswds"; +import { PreviewAlert } from "components/preview-alert"; export function Layout({ children }) { return ( @@ -11,8 +10,10 @@ export function Layout({ children }) {
-
{children}
+
{children}
+ + ); } diff --git a/src/frontend/components/node--agency.tsx b/src/frontend/components/node--agency.tsx index cec704ff..7b5b864e 100644 --- a/src/frontend/components/node--agency.tsx +++ b/src/frontend/components/node--agency.tsx @@ -1,14 +1,19 @@ import Image from "next/image"; import { DrupalNode } from "next-drupal"; import { absoluteUrl, formatDate } from "lib/utils"; +import { USABreadcrumb } from "./usa--breadcrumb"; interface NodeAgencyProps { node: DrupalNode; } export function NodeAgency({ node, ...props }: NodeAgencyProps) { + const breadcrumbLinks = [ + {label: "Agencies", href: "/agencies"}, + ]; return ( <> +
{node.field_logo && ( @@ -30,7 +35,7 @@ export function NodeAgency({ node, ...props }: NodeAgencyProps) { data-heading-elements="" >