From c0233e2e5122c8d68b1f80659722e715cc97b411 Mon Sep 17 00:00:00 2001 From: Fran McDade <18710366+frano-m@users.noreply.github.com> Date: Thu, 19 Feb 2026 13:32:59 +1000 Subject: [PATCH 1/2] feat: add ras banner (#4674) --- app/components/anvil/banner/RAS/ras.tsx | 38 +++++++++++++++++++ .../dev/announcements/announcements.ts | 7 +++- 2 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 app/components/anvil/banner/RAS/ras.tsx diff --git a/app/components/anvil/banner/RAS/ras.tsx b/app/components/anvil/banner/RAS/ras.tsx new file mode 100644 index 000000000..0ab5c76c0 --- /dev/null +++ b/app/components/anvil/banner/RAS/ras.tsx @@ -0,0 +1,38 @@ +import { Banner } from "@databiosphere/findable-ui/lib/components/common/Banner/banner"; +import { + ANCHOR_TARGET, + REL_ATTRIBUTE, +} from "@databiosphere/findable-ui/lib/components/Links/common/entities"; +import { Link } from "@mui/material"; +import { JSX } from "react"; + +export const RAS = (): JSX.Element => { + return ( + +
+ As part of new federal government security policies, Terra is required + to integrate with the NIH Researcher Authentication Service (RAS) for + identity proofing and enhanced security. In order to link your NIH + authorization to Terra, users of eRA Commons must transition to the use + of{" "} + + Login.gov + {" "} + or ID.me credentials to access AnVIL controlled-access data in Terra. + See{" "} + + here + {" "} + for more details and instructions. +
+
+ ); +}; diff --git a/site-config/anvil-cmg/dev/announcements/announcements.ts b/site-config/anvil-cmg/dev/announcements/announcements.ts index 81eadf33d..422823ad6 100644 --- a/site-config/anvil-cmg/dev/announcements/announcements.ts +++ b/site-config/anvil-cmg/dev/announcements/announcements.ts @@ -3,6 +3,11 @@ import { ComponentsConfig, } from "@databiosphere/findable-ui/lib/config/entities"; import * as C from "../../../../app/components"; +import { RAS } from "../../../../app/components/anvil/banner/RAS/ras"; + export const announcements: ComponentsConfig = [ - { component: C.Announcements } as ComponentConfig, + { + component: C.Announcements, + props: { generalAnnouncement: RAS() }, + } as ComponentConfig, ]; From ad4f1253bdb7c7a22292c8860ca741b85c4bf60d Mon Sep 17 00:00:00 2001 From: Fran McDade <18710366+frano-m@users.noreply.github.com> Date: Thu, 19 Feb 2026 14:11:08 +1000 Subject: [PATCH 2/2] refactor: use JSX syntax for RAS component in config (#4674) Convert announcements config to .tsx and use proper JSX element syntax instead of invoking the component as a function, which is an anti-pattern that breaks if hooks are added later. Co-Authored-By: Claude Opus 4.5 --- .../dev/announcements/{announcements.ts => announcements.tsx} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename site-config/anvil-cmg/dev/announcements/{announcements.ts => announcements.tsx} (88%) diff --git a/site-config/anvil-cmg/dev/announcements/announcements.ts b/site-config/anvil-cmg/dev/announcements/announcements.tsx similarity index 88% rename from site-config/anvil-cmg/dev/announcements/announcements.ts rename to site-config/anvil-cmg/dev/announcements/announcements.tsx index 422823ad6..a96e6188c 100644 --- a/site-config/anvil-cmg/dev/announcements/announcements.ts +++ b/site-config/anvil-cmg/dev/announcements/announcements.tsx @@ -8,6 +8,6 @@ import { RAS } from "../../../../app/components/anvil/banner/RAS/ras"; export const announcements: ComponentsConfig = [ { component: C.Announcements, - props: { generalAnnouncement: RAS() }, + props: { generalAnnouncement: }, } as ComponentConfig, ];