diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d58278b..d90d374 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -11,12 +11,12 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out repository - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Set up Node - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: - node-version: 12 + node-version: 18 - name: Install dependencies run: npm i @@ -28,12 +28,12 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out repository - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Set up Node - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: - node-version: 12 + node-version: 18 - name: Install dependencies run: npm i @@ -45,12 +45,12 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out repository - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Set up Node - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: - node-version: 12 + node-version: 18 - name: Install dependencies run: npm i diff --git a/components/clients/ProjectQuiz.jsx b/_archive/clients/ProjectQuiz.jsx similarity index 100% rename from components/clients/ProjectQuiz.jsx rename to _archive/clients/ProjectQuiz.jsx diff --git a/pages/clients/quizpage.jsx b/_archive/clients/quizpage.jsx similarity index 100% rename from pages/clients/quizpage.jsx rename to _archive/clients/quizpage.jsx diff --git a/pages/api/saveQuizData.js b/_archive/clients/saveQuizData.js similarity index 100% rename from pages/api/saveQuizData.js rename to _archive/clients/saveQuizData.js diff --git a/components/about/ourValues.jsx b/components/about/ourValues.jsx index 52aaa2b..a21f288 100644 --- a/components/about/ourValues.jsx +++ b/components/about/ourValues.jsx @@ -4,8 +4,43 @@ import styles from './styles.module.scss'; import classNames from 'classnames'; import { IoMdArrowDropright as ArrowIcon } from 'react-icons/io'; -const OurValues = ({ content }) => { - const [selected, setSelected] = useState(3); +const content = [ + { + header: 'Engage in your community.', + body: 'Our community makes us special. We are a group of friends who care deeply about our organization and each other. The strength of our community comes from the contributions of its members. We welcome new members with warmth, and we make the effort to know each other beyond superficial details.', + }, + { + header: 'Be dependable.', + body: 'As an organization, we trust every single member to hold themselves and others accountable. We know that our performance affects others. If we all are engaged and follow through on our commitments, then we can be confident that others have our backs.', + }, + { + header: 'Develop with care.', + body: 'We build with others in mind. Empathy and compassion are crucial to serving our partner organizations and members. When we embark on projects, we work to deeply understand the people who we are helping. We write software that meets the highest standards of development. When we deliver our final products, we ensure that others can understand how to use our code and build on it.', + }, + { + header: 'Go beyond technology.', + body: 'Technology is only one tool we use in our greater mission for social impact. It is easy to fall into the trap of believing technology can solve all problems. We know that technology alone is not enough. We learn from, work with, and are inspired by other organizations and individuals who are tackling social problems using a multitude of tools.', + }, + { + header: 'Go for it.', + body: 'Sometimes, the only way to learn if something works is to run with it. If we waited until our plans were perfect, we would never get anywhere. Organizational roles do not determine the value of an idea: great ideas can come from anyone and anywhere. We grow because we are always trying something new.', + }, + { + header: 'Learn what you don’t know.', + body: 'There is a lot to learn. In order to improve the world, we need to know about it. We recognize that we have barely scratched the surface of what is out there. We are humble about our gaps in knowledge, and are willing to answer questions with “I don’t know.” We are hungry learners, and we teach each other whenever possible.', + }, + { + header: 'Be open-minded.', + body: 'Our process depends on openness to different people, topics, and perspectives. We embrace difference and work against intolerance to foster an inclusive environment. Our goal is to expose our members to the vast opportunities and daunting challenges in our work.', + }, + { + header: 'Be critical.', + body: 'Criticism helps us grow. We are critical about the world we live in, our organization, and ourselves. Our community has an obligation to question the assumptions and decisions made by those around it. Our leaders constantly strive to improve our model by assessing our impact. Our members proactively ask for feedback and are forthcoming with feedback for others.', + }, +]; + +const OurValues = () => { + const [selected, setSelected] = useState(() => Math.min(3, content.length - 1)); const [displayValues, setDisplayValues] = useState([]); const [moveToNext, setMoveToNext] = useState(false); const autoScrollInterval = useRef(null); @@ -30,6 +65,10 @@ const OurValues = ({ content }) => { useEffect(() => { // whenever we need to move to the next element... if (moveToNext) { + if (content.length === 0) { + setMoveToNext(false); + return; + } // change which card is focused (wrapping to the start of the list if necessary) setSelected((selected + 1) % content.length); // once we're done scrolling to our focused card... @@ -56,15 +95,15 @@ const OurValues = ({ content }) => { className={classNames(styles.value_card_container, { [styles.move]: moveToNext, })}> - {displayValues.map(({ header, body, image }) => ( + {displayValues.map(({ header, body }) => (

{header}

-

{body.json.content[0].content[0].value}

+

{body}

))} diff --git a/components/apply/nonprofit/servicesDetail.jsx b/components/apply/nonprofit/servicesDetail.jsx index 77b0c0e..7aa8ff0 100644 --- a/components/apply/nonprofit/servicesDetail.jsx +++ b/components/apply/nonprofit/servicesDetail.jsx @@ -1,7 +1,6 @@ import React from 'react'; import Section from '../../section'; import { Container, Row } from 'reactstrap'; -import ContentBlock from '../../ContentBlock'; export default function ServicesDetail({ content, title }) { return ( @@ -12,7 +11,7 @@ export default function ServicesDetail({ content, title }) { - +

{content}

diff --git a/components/apply/timeline.jsx b/components/apply/timeline.jsx index a7afc7c..59107b4 100644 --- a/components/apply/timeline.jsx +++ b/components/apply/timeline.jsx @@ -1,6 +1,6 @@ import React from 'react'; import { VerticalTimeline, VerticalTimelineElement } from 'react-vertical-timeline-component'; -import ContentBlock from '../ContentBlock'; +import RichText from '../richText'; function Icon({ src, alt }) { return ( @@ -19,19 +19,28 @@ function Icon({ src, alt }) { function Timeline({ steps }) { return ( - - {steps && - steps.map(({ header, body, image }) => ( - } - key={header}> -

{header}

- -
- ))} -
+ <> + + {steps && + steps.map(({ header, body, image }) => ( + } + key={header}> +

{header}

+

+ +

+
+ ))} +
+ + ); } diff --git a/components/clients/NonprofitScroll.jsx b/components/clients/NonprofitScroll.jsx index 7c10c22..7b4b3d3 100644 --- a/components/clients/NonprofitScroll.jsx +++ b/components/clients/NonprofitScroll.jsx @@ -1,7 +1,6 @@ /* eslint-disable no-magic-numbers */ import React, { useEffect, useState, useRef } from 'react'; import { Container, Row, Col } from 'reactstrap'; -import ActionButton from '../actionButton'; import BlockQuote from '../blockQuote'; const NonprofitScroll = () => { @@ -80,7 +79,8 @@ const NonprofitScroll = () => { display: 'flex', alignItems: 'center', justifyContent: 'center', - }}> + }} + > Banner Sample { opacity: page2Opacity, visibility: page2Opacity > 0.1 ? 'visible' : 'hidden', pointerEvents: page2Opacity > 0.5 ? 'auto' : 'none', // Only allow interaction when mostly visible - }}> + }} + >
@@ -135,17 +136,12 @@ const NonprofitScroll = () => { hack4impact has built for other nonprofits.

-
- - Start - -
- {/* Back to top button */}
diff --git a/components/faqQuestion.jsx b/components/faqQuestion.jsx index 4e82d33..766bf7a 100644 --- a/components/faqQuestion.jsx +++ b/components/faqQuestion.jsx @@ -1,6 +1,6 @@ import React from 'react'; import { Collapse } from 'reactstrap'; -import ContentBlock from './ContentBlock'; +import RichText from './richText'; function FaqQuestion({ question, answer }) { const [isOpen, setIsOpen] = React.useState(false); @@ -15,7 +15,9 @@ function FaqQuestion({ question, answer }) { {/* eslint-enable */}
- +

+ +

@@ -48,6 +50,9 @@ function FaqQuestion({ question, answer }) { margin: 0 10px; color: var(--gray); } + .answer p { + white-space: pre-line; + } `} ); diff --git a/components/homePageProject.jsx b/components/homePageProject.jsx index a74c3bb..d99febf 100644 --- a/components/homePageProject.jsx +++ b/components/homePageProject.jsx @@ -1,6 +1,5 @@ import React from 'react'; import Link from 'next/link'; -import ContentBlock from './ContentBlock'; function HomePageProject({ title, description, thumbnail, urlSlug }) { return ( @@ -9,7 +8,7 @@ function HomePageProject({ title, description, thumbnail, urlSlug }) {
{thumbnail.description}

{title}

- +

{description}

); diff --git a/components/projects/featureSlider.jsx b/components/projects/featureSlider.jsx index 9bfd2dc..0bc2df5 100644 --- a/components/projects/featureSlider.jsx +++ b/components/projects/featureSlider.jsx @@ -80,7 +80,7 @@ function FeatureSlider({ features }) { .feature-slider-btn:hover h3 { color: var(--primary-blue) !important; } - .feature-slider-btn:hover 0 { + .feature-slider-btn:hover p { color: black !important; } .is-active h3 { diff --git a/components/quote.jsx b/components/quote.jsx index 5e0c465..64f17c2 100644 --- a/components/quote.jsx +++ b/components/quote.jsx @@ -3,7 +3,6 @@ import React from 'react'; import QuoteSection from './quoteSection'; import { Container, Row, Col } from 'reactstrap'; -import ContentBlock from './ContentBlock'; const Quote = ({ quote, source, sourceTitle }) => ( @@ -12,7 +11,7 @@ const Quote = ({ quote, source, sourceTitle }) => (
- +

{quote}