Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -3,23 +3,21 @@
.af-item-file {
--item-file-border-radius: var(--radius-8);
--item-file-border-color: var(--blue-1000);
--item-file-file-name-color: var(--gray-1000);
--item-file-file-size-color: var(--gray-800);
--item-file-bg-color: var(--white-1000);
--item-file-gap: var(--rem-8);
--item-file-body-padding-vertical: var(--rem-16);
--item-file-body-padding-horizontal: var(--rem-16);
--item-file-action-buttons-gap: var(--rem-24);
--item-file-action-buttons-gap: var(--rem-16);

> .af-item-file__body > .af-icon {
.af-item-file__body .af-content-item-mono .af-icon {
--icon-fill: var(--green-1000);
}
}

.af-item-file--error {
--item-file-border-color: var(--red-alert-1000);

> .af-item-file__body > .af-icon {
.af-item-file__body .af-content-item-mono .af-icon {
--icon-fill: var(--red-alert-1000);
}
}
Original file line number Diff line number Diff line change
@@ -1,59 +1,25 @@
.af-item-file {
--af-item-file-file-name-font-size: var(--rem-16);
--af-item-file-file-size-font-size: var(--rem-14);

display: flex;
flex-direction: column;
gap: var(--item-file-gap);

@media (--desktop-small) {
--af-item-file-file-name-font-size: var(--rem-18);
--af-item-file-file-size-font-size: var(--rem-16);
}

.af-icon:first-of-type,
.af-spinner {
grid-area: icon;
}
}

.af-item-file__body {
display: grid;
display: flex;
padding: var(--item-file-body-padding-vertical)
var(--item-file-body-padding-horizontal);
border: 1px solid var(--item-file-border-color);
border-radius: var(--item-file-border-radius);
grid-template-areas:
"icon file-name actions"
"icon file-size actions";
grid-template-columns: auto 1fr auto;
align-items: center;
justify-content: start;
gap: 0 var(--rem-12);
justify-content: space-between;
gap: var(--rem-12);
font: var(--font-family-base);
font-weight: 400;
line-height: 125%;
}

.af-item-file__file-name {
margin: 0;
padding: 0;
grid-area: file-name;
font-size: var(--af-item-file-file-name-font-size);
color: var(--item-file-file-name-color);
}

.af-item-file__file-size {
margin: 0;
padding: 0;
grid-area: file-size;
font-size: var(--af-item-file-file-size-font-size);
color: var(--item-file-file-size-color);
}

.af-item-file__actions {
display: flex;
grid-area: actions;
align-items: end;
align-items: center;
gap: var(--item-file-action-buttons-gap);
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,12 @@
.af-item-file {
--item-file-border-radius: var(--radius-4);
--item-file-border-color: var(--gray-800);
--item-file-file-name-color: var(--gray-1000);
--item-file-file-size-color: var(--gray-800);
--item-file-gap: var(--rem-8);
--item-file-body-padding-vertical: var(--rem-16);
--item-file-body-padding-horizontal: var(--rem-16);
--item-file-action-buttons-gap: var(--rem-16);

> .af-item-file__body > .af-icon {
.af-item-file__body .af-content-item-mono .af-icon {
--icon-fill: var(--green-1000);
}

Expand All @@ -24,7 +22,7 @@
.af-item-file--error {
--item-file-border-color: var(--red-alert-1200);

> .af-item-file__body > .af-icon {
.af-item-file__body .af-content-item-mono .af-icon {
--icon-fill: var(--red-alert-1200);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { Icon } from "../../../Icon/IconApollo";
import { Spinner } from "../../../Spinner/SpinnerApollo";
import { ItemMessage } from "../../ItemMessage/ItemMessageApollo";
import { ItemFileCommon, type ItemFileProps } from "./ItemFileCommon";

import "@axa-fr/canopee-css/prospect/ContentItemMono/ContentItemMonoApollo.css";
import "@axa-fr/canopee-css/prospect/Form/FileUpload/ItemFile/ItemFileApollo.css";

export const ItemFile = (props: ItemFileProps) => (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import {
type MouseEvent,
} from "react";
import type { ClickIconProps } from "../../../ClickIcon/ClickIconCommon";
import { ContentItemMonoCore } from "../../../ContentItemMono/ContentItemMonoCore";
import type { IconProps } from "../../../Icon/IconCommon";
import type { SpinnerProps } from "../../../Spinner/SpinnerCommon";
import { getClassName } from "../../../utilities/getClassName";
Expand Down Expand Up @@ -63,6 +64,7 @@ export type ItemFileCommonProps = ItemFileProps & {

const BASE_UNIT = 1000;
const BYTE_UNITS = ["Ko", "Mo", "Go"];

const getReadableFileSizeString = (fileSizeInBytes: number) => {
let i = -1;
let fileSizeInBytesCopy = fileSizeInBytes;
Expand Down Expand Up @@ -99,6 +101,13 @@ export const ItemFileCommon = ({
callback(file, e);
};

const statusIndicator =
isLoading && !hasError ? (
<ItemSpinnerComponent size={24} />
) : (
<ItemIconComponent size="S" src={hasError ? errorIcon : validationIcon} />
);

return (
<section
className={getClassName({
Expand All @@ -111,18 +120,11 @@ export const ItemFileCommon = ({
{...props}
>
<div className="af-item-file__body">
{isLoading && !hasError ? (
<ItemSpinnerComponent size={24} />
) : (
<ItemIconComponent
size="S"
src={hasError ? errorIcon : validationIcon}
/>
)}
<p className="af-item-file__file-name">{file.name}</p>
<p className="af-item-file__file-size">
{getReadableFileSizeString(file.size)}
</p>
<ContentItemMonoCore
leftComponent={statusIndicator}
title={file.name}
subtitle={getReadableFileSizeString(file.size)}
/>
<div className="af-item-file__actions">
{!isLoading && !hasError && (
<ClickIconComponent
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { Icon } from "../../../Icon/IconLF";
import { Spinner } from "../../../Spinner/SpinnerLF";
import { ItemMessage } from "../../ItemMessage/ItemMessageLF";
import { ItemFileCommon, type ItemFileProps } from "./ItemFileCommon";

import "@axa-fr/canopee-css/client/ContentItemMono/ContentItemMonoLF.css";
import "@axa-fr/canopee-css/client/Form/FileUpload/ItemFile/ItemFileLF.css";

export const ItemFile = (props: ItemFileProps) => (
Expand Down
Loading