Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Component Request - FTVA Footer #569

Open
farosFreed opened this issue Jul 23, 2024 · 1 comment
Open

Component Request - FTVA Footer #569

farosFreed opened this issue Jul 23, 2024 · 1 comment
Assignees
Labels
enhancement New feature or request feature feature

Comments

@farosFreed
Copy link
Contributor

farosFreed commented Jul 23, 2024

Component Description

This component is used to the display a footer at the base of all pages on the FTVA site. It is also used already on the library website nuxt site to display the footer, so it needs to be edited without impacting default stories.

The FTVA footer will require updates to FooterMain.vue, FooterPrimary.vue, FooterSock.vue, and will also require creating a new component FooterLinks.vue which will render 4 columns of links.

Design

Please see attached FIGMA's for quick reference.

If no mobile designs provided, please use your best judgment for responsiveness.

Slots

No slots needed.

Props

FooterMain.vue
FooterMain needs 1 prop added to track when to show the new FooterLinks.vue child component.
It should default to false since that is the behavior we need for the library-website-next site

props: {
    showLinks: {
        type: Boolean,
        default: false 
    }
}

FooterPrimary.vue
See developer tips for more information, but basically you can add a prop where ever you need to replace hard-coded text content.

props: {
    formSubmitLabel: {
        type: String,
        default: 'Subscribe' 
    }
}

FooterSock.vue
should not need new props, gets data from store

FooterLinks.vue
Can get data from the store the same way FooterSock does- from GlobalStore.js

Developer Tips

FooterMain.vue

  • FooterMain will need to be updated to include FooterLinks.vue. Since we do not want FooterLinks to be visible be default, FooterLinks needed to be rendered with a v-if statement that checks if the showLinks prop is true.
  • Implement the theme pattern and new styles
  • Hide FooterSponsor when theme is FTVA

FooterPrimary.vue

  • For text that was previously hardcoded (like 'Subscribe' text on the newsletter button that needs to become 'Submit'), add a prop for the content that defaults to the current content.
  • Ensure the component works without parsedPressItems section rendering.
  • Implement the theme pattern and new styles
  • Render the logo based on the theme, you can find the FTVA logo in the design tokens repo

FooterSock.vue

  • Implement the theme pattern and new styles

FooterLinks.vue | NEW

  • Implement an object in stores/GlobalStore.js, it could look like:
    footerLinks: {
      nodes: [
        {
          category: 'About',
          children: mockFooterLinks.aboutLinks,
        },
        {
          category: 'Contact',
          children: mockFooterLinks.contactLinks,
        },
        {
          category: 'Contribute',
          children: mockFooterLinks.contributeLinks,
        },
        {
          category: 'Resources',
          children: mockFooterLinks.resourcesLinks,
        },
      ],
    },
  • use a computed method to get the data from the store and populate 4 columns with links
  • display the links with SmartLink components or vue's router-link component
  • optional Implement the theme pattern
Screenshot 2024-07-23 at 3 45 17 PM

Events

No events

Child components

Add new component FooterLinks to FooterMain as a child component

FooterLinks will use either SmartLink or router-link child components to show the 4 lists of links

Screenshots

Screenshot 2024-07-23 at 1 57 21 PM
@farosFreed farosFreed self-assigned this Jul 23, 2024
@farosFreed farosFreed changed the title Component Request - FTVA Footer variation Component Request - FTVA Footer Jul 23, 2024
@farosFreed farosFreed added the enhancement New feature or request label Jul 23, 2024
@jendiamond
Copy link
Member

looks good

@farosFreed farosFreed added the feature feature label Jul 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request feature feature
Projects
None yet
Development

No branches or pull requests

2 participants