Skip to content

Commit

Permalink
dynamic sidebar
Browse files Browse the repository at this point in the history
  • Loading branch information
JensRavens committed Nov 23, 2024
1 parent 3951425 commit c5c1215
Show file tree
Hide file tree
Showing 6 changed files with 28 additions and 9 deletions.
16 changes: 12 additions & 4 deletions app/javascript/components/sidebar/sidebar.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,15 @@
import React from 'react';
import logo from '../../../frontend/images/logo.svg';

export function Sidebar(): JSX.Element {
interface Props {
user: {
id: string;
displayName: string;
avatarUrl: string;
};
}

export function Sidebar({ user }: Props): JSX.Element {
return (
<nav className="sidebar">
<a className="sidebar__header" href="/">
Expand All @@ -22,9 +30,9 @@ export function Sidebar(): JSX.Element {
</a>
</div>
<div className="sidebar__footer">
<a className="sidebar__avatar" href="/user">
<div className="sidebar__avatar-name">User</div>
<img src="" alt="avatar" />
<a className="sidebar__avatar" href={`/users/${user.id}`}>
<div className="sidebar__avatar-name">{user.displayName}</div>
<img src={user.avatarUrl} alt="avatar" />
</a>
</div>
</nav>
Expand Down
2 changes: 1 addition & 1 deletion app/views/pages/home.props.rb
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
field :current_user, global: :current_user do
field :id
field :email
field :display_name
field :avatar_url, value: -> { avatar_image(size: 200) }
end

field :upcoming_leaves, array: true, value: -> { @upcoming_leaves } do
Expand Down
2 changes: 1 addition & 1 deletion app/views/pages/home.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ export default function Home({
}: PageProps<'pages/home'>): JSX.Element {
return (
<>
<Sidebar />
<Sidebar user={currentUser} />
<div className="content">
<div className="container">
<div className="stack">
Expand Down
6 changes: 6 additions & 0 deletions app/views/users/index.props.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
field :current_user, global: :current_user do
field :id
field :display_name
field :avatar_url, value: -> { avatar_image(size: 200) }
end

field :filter, value: -> { @filter }
field :users, array: true, value: -> { @users } do
field :id
Expand Down
4 changes: 2 additions & 2 deletions app/views/users/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@ import { Sidebar } from '../../javascript/components/sidebar/sidebar';
import { PageProps } from '../../../data.d';

export default function ({
data: { filter, users },
data: { filter, users, currentUser },
}: PageProps<'users/index'>): JSX.Element {
return (
<>
<Sidebar />
<Sidebar user={currentUser} />
<div className="content">
<div className="container">
<div className="stack">
Expand Down
7 changes: 6 additions & 1 deletion data.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ export interface DataSchema {
'pages/home': {
currentUser: {
id: string;
email: string;
displayName: string;
avatarUrl: string;
};
upcomingLeaves: Array<{
id: string;
Expand All @@ -15,6 +15,11 @@ export interface DataSchema {
remainingHolidays: string;
};
'users/index': {
currentUser: {
id: string;
displayName: string;
avatarUrl: string;
};
filter: string;
users: Array<{
id: string;
Expand Down

0 comments on commit c5c1215

Please sign in to comment.