Skip to content
This repository has been archived by the owner on Aug 1, 2022. It is now read-only.

Commit

Permalink
feat: extend Avatar with new fallback data (#221)
Browse files Browse the repository at this point in the history
* Extend Avatar with avatarFallback
* Hide erroneous avatar image
* Fix mock avatar img url
  • Loading branch information
Merle Breitkreuz committed Mar 13, 2020
1 parent 660fa31 commit fc2f7bd
Show file tree
Hide file tree
Showing 6 changed files with 77 additions and 18 deletions.
2 changes: 1 addition & 1 deletion proxy/src/graphql/schema.rs
Expand Up @@ -285,7 +285,7 @@ impl Query {
metadata: identity::Metadata {
handle: "cloudhead".into(),
display_name: Some("Alexis Sellier".into()),
avatar_url: Some("https://avatars1.githubusercontent.com/u/4077".into()),
avatar_url: Some("https://avatars1.githubusercontent.com/u/40774".into()),
},
}))
}
Expand Down
4 changes: 2 additions & 2 deletions proxy/tests/graphql_mutation.rs
Expand Up @@ -17,7 +17,7 @@ fn create_identity() {
vars.insert("displayName".into(), InputValue::scalar("Alexis Sellier"));
vars.insert(
"avatarUrl".into(),
InputValue::scalar("https://avatars1.githubusercontent.com/u/4077"),
InputValue::scalar("https://avatars1.githubusercontent.com/u/40774"),
);

let query = "mutation($handle: String!, $displayName: String, $avatarUrl: String) {
Expand All @@ -43,7 +43,7 @@ fn create_identity() {
"metadata": {
"handle": "cloudhead",
"displayName": "Alexis Sellier",
"avatarUrl": "https://avatars1.githubusercontent.com/u/4077",
"avatarUrl": "https://avatars1.githubusercontent.com/u/40774",
},
},
})
Expand Down
2 changes: 1 addition & 1 deletion proxy/tests/graphql_query.rs
Expand Up @@ -615,7 +615,7 @@ fn identity() {
"metadata": {
"handle": "cloudhead",
"displayName": "Alexis Sellier",
"avatarUrl": "https://avatars1.githubusercontent.com/u/4077",
"avatarUrl": "https://avatars1.githubusercontent.com/u/40774",
},
"avatarFallback": {
"emoji": "🚡",
Expand Down
45 changes: 41 additions & 4 deletions ui/DesignSystem/Primitive/Avatar.svelte
Expand Up @@ -3,12 +3,19 @@
export let style = null;
export let imageUrl = `https://avatars.dicebear.com/v2/avataaars/S7oswrhcNJkjzUhNW33S.svg`;
// the hierarchy of usage for the following avatars is:
// imageUrl > avatarFallback
export let imageUrl = null;
export let avatarFallback = null; // {emoji: <emoji>, background: {r: <r>, g: <g>, b: <b>}};
export let title = null;
export let variant = "user"; // user | project
export let size = "regular"; // regular | medium | big
const fmt = background => {
return `rgb(${background.r}, ${background.g}, ${background.b})`;
};
$: avatarClass = [variant, size].join(" ");
</script>

Expand All @@ -32,6 +39,10 @@
border-radius: 34px;
}
.avatar.user.big {
line-height: 68px;
}
.project {
border-radius: 2px;
}
Expand All @@ -46,15 +57,41 @@
height: 64px;
}
div {
.container {
display: flex;
align-items: center;
justify-content: center;
}
.avatar {
display: flex;
justify-content: center;
align-items: center;
}
</style>

<div class={size} {style}>
<img class={avatarClass} src={imageUrl} alt="user-avatar" />
<div class={`container ${size}`} {style}>
{#if imageUrl}
<img
class={avatarClass}
src={imageUrl}
alt="user-avatar"
onerror="this.style.display='none'" />
{:else if avatarFallback}
<div
class={`avatar ${avatarClass}`}
style="background: {fmt(avatarFallback.background)}">
<Title variant={size} style="min-width: 27px; text-align: end;">
{avatarFallback.emoji}
</Title>
</div>
{:else}
<!-- TODO: Remove when all avatars use the new fallback data or add placeholder -->
<img
class={avatarClass}
src="https://avatars.dicebear.com/v2/avataaars/S7oswrhcNJkjzUhNW33S.svg"
alt="user-avatar" />
{/if}

{#if title && size === 'regular'}
<Title
Expand Down
6 changes: 4 additions & 2 deletions ui/DesignSystem/Primitive/Input/Text.svelte
Expand Up @@ -12,6 +12,7 @@
export let valid = true;
export let validationMessage = null;
export let variant = "vanilla"; // vanilla | handle
export let avatar = null;
export let validationPending = false;
</script>

Expand Down Expand Up @@ -70,10 +71,11 @@
{disabled}
on:change
on:input />
{#if variant === 'handle'}
{#if variant === 'handle' && value && avatar}
<Avatar
avatarFallback={avatar}
variant="user"
size="small"
size="regular"
style="width: 32px; height: 48px; justify-content: flex-start; position:
absolute; top: 0px; left: 10px" />
{/if}
Expand Down
36 changes: 28 additions & 8 deletions ui/Screen/DesignSystemGuide.svelte
Expand Up @@ -56,6 +56,24 @@
avatar: "https://avatars.dicebear.com/v2/jdenticon/two.svg"
};
const avatarFallback1 = {
emoji: "📐",
background: {
r: 24,
g: 105,
b: 216
}
};
const avatarFallback2 = {
emoji: "🛠",
background: {
r: 181,
g: 25,
b: 111
}
};
const dropdownMenuItems = [
{
title: "Add something",
Expand Down Expand Up @@ -448,6 +466,7 @@

<Swatch>
<Input.Text
avatar={avatarFallback1}
placeholder="Enter user name"
style="width: 100%"
valid={true}
Expand All @@ -457,6 +476,7 @@

<Swatch>
<Input.Text
avatar={avatarFallback1}
placeholder="Enter user name"
style="width: 100%"
valid={true}
Expand All @@ -467,6 +487,7 @@

<Swatch>
<Input.Text
avatar={avatarFallback2}
placeholder="Enter user name."
style="width: 100%"
valid={false}
Expand Down Expand Up @@ -495,12 +516,11 @@
subTitle="User, project, etc avatars in various sizes and shapes.">

<Swatch>
<Avatar />
<Avatar size="big" />
<Avatar
imageUrl="https://avatars.dicebear.com/v2/avataaars/gWIIBkeCYYZFCPhBp3Cl.svg" />
<Avatar avatarFallback={avatarFallback1} />
<Avatar size="big" avatarFallback={avatarFallback1} />
<Avatar imageUrl="https://avatars1.githubusercontent.com/u/40774" />
<Avatar
imageUrl="https://avatars.dicebear.com/v2/avataaars/gWIIBkeCYYZFCPhBp3Cl.svg"
imageUrl="https://avatars1.githubusercontent.com/u/40774"
size="big" />
<Avatar
imageUrl="https://avatars.dicebear.com/v2/jdenticon/one.svg"
Expand All @@ -512,8 +532,8 @@
</Swatch>

<Swatch>
<Avatar title="My name" />
<Avatar size="big" title="My name" />
<Avatar title="My name" avatarFallback={avatarFallback2} />
<Avatar size="big" title="My name" avatarFallback={avatarFallback2} />
</Swatch>
</Section>

Expand Down Expand Up @@ -553,7 +573,7 @@
</div>

<div slot="right">
<Avatar title="user" />
<Avatar title="user" avatarFallback={avatarFallback1} />
</div>
</Row>
</Swatch>
Expand Down

0 comments on commit fc2f7bd

Please sign in to comment.