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

Header component #1

Open
spwoodcock opened this issue Nov 10, 2023 · 10 comments
Open

Header component #1

spwoodcock opened this issue Nov 10, 2023 · 10 comments
Assignees
Labels
component Creating a new component

Comments

@spwoodcock
Copy link
Member

spwoodcock commented Nov 10, 2023

Once we have lower level component in place to compose this, a header is a major component to reuse in our tools.

It should have:

  • HOT Logo
  • Tool name / title
  • Links to important pages
  • Button to open a sidebar (if present)
    • Note: if mobile, the 'sidebar' should be a modal instead (but this is a different component)
  • OSM login
    • We currently use a Python lib for this, but it OAuth can actually be handled entirely on the frontend (OSM itself is the backend)
    • There are libraries available to handle the token exchange via auth code flow
@MrBlackGhostt
Copy link

Hello @spwoodcock,

I'm eager to contribute to Issue #1—"Header Component Creation." With expertise in React, TypeScript, and Redux, here's my proposed approach:

Component Composition:

Use existing lower-level components to compose the header.
Header Features:

Include HOT logo.
Display tool name/title.
Add links to essential pages.
Implement a sidebar-opening button.
Ensure mobile responsiveness, using a modal instead of a sidebar.
Integrate OSM login, managing OAuth on the frontend.
Skills Utilization:

Employ React, TypeScript, and Redux for efficient code.

Apply responsive design for mobile compatibility.

Use relevant libraries for token exchange via auth code flow.

Could you please assign this issue to me? Excited about the opportunity!

@spwoodcock spwoodcock added the enhancement New feature or request label Dec 12, 2023
@spwoodcock
Copy link
Member Author

spwoodcock commented Dec 12, 2023

Hello @MrBlackGhostt !

Of course we would love contribution and welcome a PR with new features 😄

The only thing is we recently took the technical decision to build these low level UI components using Web Components, instead of React (apologies I hadn't updated the repo description).

Web Components will be a lot more versatile as they can be used in any project, regardless of what web framework they are built with (React, plain HTML, Vue, Svelte, HTMX, etc).

For the lowest level components such as these we want to be as flexible as possible.

The tool of choice to built these Web Components is Lit, so if you fancy a challenge (it's not too difficult, I promise 😉), then we would of course still invite you to work on your proposed plan.

You can see an example Button built with Lit in the repo & we will have more to come in the near future.

If you are still interested, let me know & I will assign =)

@MrBlackGhostt
Copy link

I am interested in taking this challenge and want to use my knowledge and skills to this issue

@spwoodcock
Copy link
Member Author

Amazing - thank you 😄

Please bear in mind that this is very early stages, so components made early on may be refined further down the line.

@JoltCode is already working on some of the lower level components, so it may be good to coordinate if possible.

I envision this header component will be an combination (wrapper) of a few lower level components such as a button to open a sidebar, possibly a dropdown menu, avatar component, header component, and hot logo component.

The idea is this component library is well thought out and designed and will be used in every HOT tool eventually.

@spwoodcock spwoodcock changed the title Header component Header wrapper component Dec 12, 2023
@JoltCode
Copy link
Collaborator

Hey @MrBlackGhostt, thanks so much for your interest in contributing to the repo - really appreciate it!

As @spwoodcock mentioned, we're currently working on setting up the Lit components and the repo; we're currently still composing the lower level components, which will be required for the higher level components. This hopefully will be complete soon, but as it's currently holiday season, progress is a little slower than it has been.

Once we're ready for this component to be added, we'll be sure to let you know!

Thanks so much! 😄

@spwoodcock spwoodcock changed the title Header wrapper component Header composite component Jan 16, 2024
@spwoodcock spwoodcock changed the title Header composite component Header component Jun 27, 2024
@spwoodcock
Copy link
Member Author

This has been started.

Requires adding:

@spwoodcock spwoodcock added component Creating a new component and removed enhancement New feature or request labels Jun 27, 2024
@spwoodcock spwoodcock moved this to Backlog in Shared UI Jun 27, 2024
@spwoodcock spwoodcock moved this from Backlog to Ready in Shared UI Jun 27, 2024
@MrBlackGhostt
Copy link

is it started

@spwoodcock
Copy link
Member Author

Hi again, it's been a while!

Did you manage to make any progress on the component?

Sorry, I unassigned it as it's been 7 months 😅

Happy to assign again if you are keen 🙏

@MrBlackGhostt
Copy link

yes sure this week is pretty busy I will work on it next week

@emi420 emi420 self-assigned this Aug 5, 2024
@emi420 emi420 moved this from Ready to In progress in Shared UI Aug 5, 2024
@emi420
Copy link
Collaborator

emi420 commented Aug 5, 2024

I'll take this one, as I have time assigned to do it.

This is what I'll build:

Image

I'll also create issues for other needed components (ie: Logo)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component Creating a new component
Projects
Status: In progress
Development

No branches or pull requests

4 participants