Skip to content

Commit 55dc9f3

Browse files
committed
feat(user): adding user svg during avatar loading
1 parent 7808f9e commit 55dc9f3

File tree

5 files changed

+36
-8
lines changed

5 files changed

+36
-8
lines changed

src/components/Avatar/Avatar.svelte

+5-2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import Icons from 'components/icons';
44
import { ProviderEnum } from '../../models/skizzle/ProviderEnum';
55
import { Service } from 'services/Service';
6+
import { settings } from 'shared/stores/default.store';
67
export let pullRequest: PullRequestType;
78
export let className: string;
89
@@ -55,7 +56,7 @@
5556
<div class={`container ${className || ''}`}>
5657
{#await Service.getAvatar(pullRequest.provider, pullRequest.user.avatar, pullRequest.organizationName)}
5758
<div class="avatar">
58-
<p>Chargement...</p>
59+
<svelte:component this={Icons.User} color={$settings.theme}/>
5960
</div>
6061
{:then avatar}
6162
<div class="avatar"><img src={avatar} alt={pullRequest.user.name} /></div>
@@ -65,6 +66,8 @@
6566
</div>
6667
{/if}
6768
{:catch}
68-
<p>Erreur</p>
69+
<div class="avatar">
70+
<svelte:component this={Icons.User} color={$settings.theme}/>
71+
</div>
6972
{/await}
7073
</div>

src/components/icons/User.svelte

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<script lang="ts">
2+
export let color: string;
3+
</script>
4+
5+
<svg
6+
id="d79f8f7b-85a0-47dd-be6a-2e9cd54f2982"
7+
data-name="svg"
8+
xmlns="http://www.w3.org/2000/svg"
9+
viewBox="0 0 16 16">
10+
<path
11+
fill="transparent"
12+
stroke={color}
13+
stroke-width="0.5"
14+
d="M8,8A2.67,2.67,0,1,0,5.33,5.33,2.67,2.67,0,0,0,8,8ZM8,9.33c-1.78,0-5.33.89-5.33,2.67v1.33H13.33V12C13.33,10.23,9.78,9.33,8,9.33Z"/>
15+
</svg>

src/components/icons/index.ts

+2
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import AzureDevOps from './AzureDevOps.svelte';
88
import Github from './Github.svelte';
99
import Ellipsis from './Ellipsis.svelte';
1010
import Plus from './Plus.svelte';
11+
import User from './User.svelte';
1112

1213
export default {
1314
List,
@@ -20,4 +21,5 @@ export default {
2021
Github,
2122
Ellipsis,
2223
Plus,
24+
User,
2325
};

src/shared/stores/default.store.ts

+11-3
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,24 @@ export const isLoading = createStore<boolean>(false, {});
1818
export const isFetchingData = createStore<boolean>(false, {});
1919
export const settings = createStore<SettingsType>(
2020
{
21-
refresh_delay: 1,
21+
refresh_delay: 5,
2222
launch_at_startup: false,
2323
proxy: '',
2424
theme: ThemeEnum.Orange,
2525
language: 'en',
2626
},
2727
{
2828
key: 'settings',
29-
subscriber: ({ launch_at_startup }) => {
30-
app.send('launch-startup', launch_at_startup);
29+
subscriber: initialValue => settings => {
30+
Object.keys(initialValue).forEach(element => {
31+
let property = settings[element];
32+
33+
if (!property) {
34+
settings[element] = initialValue[element];
35+
}
36+
});
37+
38+
app.send('launch-startup', settings.launch_at_startup);
3139
},
3240
},
3341
);

src/shared/stores/store.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import type { ProviderEnum } from 'models/skizzle';
22
import { addItem, getItem } from 'shared/utils';
3-
import { get, writable } from 'svelte/store';
3+
import { get, Writable, writable } from 'svelte/store';
44

55
type StoreOptionsType<T> = {
66
key?: string;
77
predicate?: (value?: T, provider?: ProviderEnum) => T;
8-
subscriber?: (value: T) => void;
8+
subscriber?: (initialValue: T) => (value: T) => void;
99
};
1010

1111
export const createStore = <T>(
@@ -18,7 +18,7 @@ export const createStore = <T>(
1818
const { subscribe, set, update } = store;
1919

2020
if (subscriber) {
21-
subscribe(subscriber);
21+
subscribe(subscriber(initialValue));
2222
}
2323

2424
if (key) {

0 commit comments

Comments
 (0)