Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add expiration panel #2294

Merged
merged 7 commits into from
Dec 7, 2022
Merged

Add expiration panel #2294

merged 7 commits into from
Dec 7, 2022

Conversation

PolariTOON
Copy link
Contributor

@PolariTOON PolariTOON commented Nov 29, 2022

This will be on top of cozy/cozy-client#1274 and thus will need an update of cozy-client.
For consistency, cozy-harvest-lib should also be updated after cozy/cozy-libs#1893 is merged, but this is not required by this PR.

Demo link : https://polaritoon.github.io/cozy-ui/react/#!/Viewer

@bundlemon
Copy link

bundlemon bot commented Nov 29, 2022

BundleMon

Unchanged files (2)
Status Path Size Limits
dist/cozy-ui.min.css
19.67KB +5%
dist/cozy-ui.utils.min.css
9.99KB +5%

No change in files bundle size

Groups updated (1)
Status Path Size Limits
transpiled/react/**
548.53KB (+2.38KB +0.44%) -

Final result: ✅

View report in BundleMon website ➡️


Current branch size history | Target branch size history

react/Viewer/Panel/QualificationListItemOther.jsx Outdated Show resolved Hide resolved
react/Viewer/Panel/QualificationListItemDateAnnotation.jsx Outdated Show resolved Hide resolved
react/Viewer/Panel/QualificationListItemDateAnnotation.jsx Outdated Show resolved Hide resolved
react/Viewer/Panel/QualificationListItemDateAnnotation.jsx Outdated Show resolved Hide resolved
react/Viewer/Panel/QualificationListItemDateAnnotation.jsx Outdated Show resolved Hide resolved
react/Viewer/Panel/ExpirationLink.jsx Outdated Show resolved Hide resolved
react/Viewer/Panel/ExpirationLink.jsx Outdated Show resolved Hide resolved
react/Viewer/Panel/Expiration.jsx Outdated Show resolved Hide resolved
react/Viewer/Panel/Expiration.jsx Outdated Show resolved Hide resolved
react/Viewer/Panel/getPanelBlocks.jsx Outdated Show resolved Hide resolved

const handleClose = async () => {
setIsBusy(true)
await client.collection(FILES_DOCTYPE).updateMetadataAttribute(file.id, {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

est-ce qu'on devrait pas plutôt faire un client.save() ici ? cc @paultranvan @Crash--

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

J'ai procédé de la manière que dans InformationEdit ou encore dans PageEdit.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tu peux pas utiliser un save() pour mettre à jour ces infos là pour le moment.

Par contre, si l'app n'a pas de temps réel sur le io.cozy.files alors le fichier ne sera pas à jour dans le store de cozy-client.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Donc pour résumer :

  • est-ce qu'on devrait : oui
  • est-ce qu'on peut : non
    ;)

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pourquoi on peut pas ? 🤔

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

En passant par la droite. :trollface:

je veux dire, pourquoi on peut pas faire client.save en passant donc le file qu'on refait "à la main" plutôt qu'en utilisant une méthode https://github.com/cozy/cozy-client/blob/master/packages/cozy-stack-client/src/FileCollection.js#L982 qui prend l'id du doc en arg. ?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Parce que c'est un point d'API spécifique pour mettre à jour ces informations...

On a déjà quelques if sur le update https://github.com/cozy/cozy-client/blob/master/packages/cozy-stack-client/src/FileCollection.js#L495-L518 mais il ne gère pas encore le updateMetadataAttribute

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

issue / PR welcome 😉

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is already at least one discussion about that cozy/cozy-client#650

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I didn't see this PR, so I created an issue to link it: cozy/cozy-client#1277

@PolariTOON PolariTOON force-pushed the feat/add-expiration-panel branch 4 times, most recently from 10e9401 to e1f7408 Compare December 6, 2022 14:32
@PolariTOON
Copy link
Contributor Author

Link to a demo in the current state : https://polaritoon.github.io/cozy-ui/react/#!/Viewer

@PolariTOON PolariTOON force-pushed the feat/add-expiration-panel branch 4 times, most recently from 554b444 to 5012c0f Compare December 7, 2022 14:53
@PolariTOON
Copy link
Contributor Author

@JF-Cozy This should be ready for another review.

Copy link
Collaborator

@JF-Cozy JF-Cozy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

modif à prendre en compte dans une autre PR dans les prochains jours, besoin de livraison rapide

@@ -90,7 +90,7 @@
"babel-preset-cozy-app": "2.0.2",
"browserslist-config-cozy": "0.4.0",
"copyfiles": "2.4.1",
"cozy-client": "^33.0.0",
"cozy-client": "^34.4.0",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cozy-client est aussi en peerDep, il faudrait donc mettre à jour également là-bas, non ? Attention c'est un BC

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bien vu, j'ai indiqué le BC dans le premier commit.


if (isExpired(file)) {
return (
<Typography component="span" variant="inherit" color="error">
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

component="span" variant="inherit" vraiment nécessaire ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

component="span" c'est parce Typography est par défaut un élément p et donc chaque Typography s'afficherait un en dessous de l'autre
variant="inherit" c'est parce que Typography est par défaut en body1 et donc le texte ne serait pas de la bonne taille (selon l'endroit mettre un body2 peut aussi fonctionner mais inherit ça montre bien que l'on veut juste la même chose que le parent)
J'accorde que Typography perd pas mal de son intérêt ici. C'est aussi pour ça que j'étais parti sur un <span className="ui-error" /> initialement voir pas de composant du tout à certains autres endroits.

const expirationDate = computeExpirationDate(file)

return (
<Typography component="span" variant="inherit" className="u-warning">
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

idem component="span" variant="inherit"

secondary={formattedDate}
secondary={
<>
<Typography component="span" variant="inherit">
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

idem component="span" variant="inherit" et partout sur la PR :p

import { useI18n } from '../../I18n'
import { formatLocallyDistanceToNow } from '../../I18n/format'

const FILES_DOCTYPE = 'io.cozy.files'
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

à voir si on a n'a pas déjà des constantes quelque part, ici ou dans cozy-client...

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Je ne vois pas d'endroit en particulier d'où il serait exporté, mais si un tel endroit n'existe pas, il faut avouer que ça serait sans doute bien de tout y centraliser plutôt que de redéfinir les constantes à chaque fois dans chaque lib / app.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

N'allait pas trop loin dans la mutualisation, y a des trucs qui font sens, d'autres non. Le KISS impose de temps en temps de dupliquer du code, et y a rien de mal à ça. Importer une constante depuis un autre package qui définit déjà une autre constante (car on peut considérer io.cozy.files comme une constante déjà), ça n'a que très très peu d'intérêt. Voir aucun en fait ? 🤔

react/Viewer/components/ExpirationAlert.jsx Outdated Show resolved Hide resolved
react/Viewer/Panel/Qualification.jsx Outdated Show resolved Hide resolved
{isExpiringSoon(file) && !file?.metadata?.hideExpirationAlert && (
<ExpirationAlert file={file} />
)}
<List className={'u-pv-1'}>
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

u-pv-1 vraiment nécessaire ici ? Les styles sur les listes ont été bien revus... 🤔

Copy link
Contributor Author

@PolariTOON PolariTOON Dec 7, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Il était déjà là ! En l'état il est nécessaire parce qu'il assure que la liste n'est pas collée en haut et en bas du bloc. Je l'avais justement modifié initialement lorsque j'ai corrigé les problèmes de marges, mais je l'ai restauré depuis puisqu'on a dit qu'on repoussait la correction des problèmes de marges à plus tard !

qualification: {
label: 'personal_sporting_licence'
}
}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

on aurait pu mettre dans le même exemple que l'autre pour tout avoir au même endroit je pense

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

De quel autre exemple parles-tu ? Celui-ci existait déjà, j'ai juste rajouté des attributs supplémentaires.

@PolariTOON PolariTOON force-pushed the feat/add-expiration-panel branch from 5012c0f to a12d0d8 Compare December 7, 2022 16:52
@PolariTOON PolariTOON merged commit 75a5d0b into master Dec 7, 2022
@PolariTOON PolariTOON deleted the feat/add-expiration-panel branch December 7, 2022 17:12
@cozy-bot
Copy link

cozy-bot commented Dec 7, 2022

🎉 This PR is included in version 78.0.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants