JulienChapron/simple-address-book

View on GitHub
client/src/components/contact.svelte

Summary

Maintainability
Test Coverage
<script>
    import { contact, key } from '../stores';
    import { useNavigate } from 'svelte-navigator';
    import { Button } from 'smelte';
    import GenericBtn from '../components/genericBtn.svelte';
    import { base_url_image } from '../../environment';
    import { t } from '../i18n/i18n';

    const navigate = useNavigate();
    let apiUrlImage = base_url_image;

    function updateContact() {
        navigate('/contact-form');
        $contact = $contact;
        $key = 'PUT';
    }
</script>

<div data-testid="contact-component">
    <div style="display: flex; justify-content: center;">
        <GenericBtn
            iconBtn="cancel"
            testid="cancel-btn"
            methodBtn="cancelContact"
            colorBtn="black"
            textBtn="cancel"
        />
        <GenericBtn
            iconBtn="delete"
            testid="delete-btn"
            methodBtn="deleteContact"
            colorBtn="error"
            textBtn="delete"
            keyBtn="big"
            data={$contact}
        />
        <Button
            data-testid="update-button"
            on:click={updateContact}
            icon="create"
            style="background-color:#fca311">{$t('update')}</Button
        >
    </div>
    <div style="width: 100%; padding: 5px 40px 40px 40px;">
        <div style="border-radius: 5px; border: grey 1px solid;">
            <div style="padding: 20px; background: #fff; border-radius: 5px 5px 0px 0px">
                <img
                    style="width: 100px; height: 100px; border-radius: 100%; margin:auto;"
                    alt="avatar"
                    src={apiUrlImage + $contact.avatar}
                />
            </div>
            <div style="padding:20px;">
                <div style="margin-top: 15px;">
                    <Button class="contact-btn" color="black" text light flat icon="person" />
                    <p>{$contact.firstname}{' '}{$contact.lastname}</p>
                </div>
                <p style="margin-top: 15px;">
                    <Button
                        class="contact-btn"
                        color="black"
                        text
                        light
                        flat
                        icon="email"
                    />{$contact.email}
                </p>

                <p style="margin-top: 15px;">
                    <Button
                        class="contact-btn"
                        color="black"
                        text
                        light
                        flat
                        icon="phone"
                    />{$contact.mobile}
                </p>
            </div>
        </div>
    </div>
</div>