Skip to content

Commit

Permalink
feat(harvest): Add success snackbar after successful synchronization
Browse files Browse the repository at this point in the history
  • Loading branch information
JF-Cozy committed Jan 10, 2023
1 parent 621683a commit 242544e
Show file tree
Hide file tree
Showing 3 changed files with 65 additions and 37 deletions.
100 changes: 63 additions & 37 deletions packages/cozy-harvest-lib/src/components/cards/LaunchTriggerAlert.jsx
@@ -1,57 +1,83 @@
import React from 'react'
import React, { useState, useEffect } from 'react'

import Alert from 'cozy-ui/transpiled/react/Alert'
import Button from 'cozy-ui/transpiled/react/Buttons'
import Typography from 'cozy-ui/transpiled/react/Typography'
import Spinner from 'cozy-ui/transpiled/react/Spinner'
import Snackbar from 'cozy-ui/transpiled/react/Snackbar'

import KonnectorIcon from '../KonnectorIcon'
import { getLastSuccessDate, getKonnectorSlug } from '../../helpers/triggers'
import { isRunnable } from '../../helpers/konnectors'
import { useFlowState } from '../../models/withConnectionFlow'
import { SUCCESS } from '../../models/flowEvents'
import KonnectorIcon from '../KonnectorIcon'
import { makeLabel } from './helpers'

export const LaunchTriggerAlert = ({ flow, f, t, disabled }) => {
const { trigger, running, expectingTriggerLaunch } = useFlowState(flow)
const [showSuccessSnackbar, setShowSuccessSnackbar] = useState(false)
const { trigger, running, expectingTriggerLaunch, status } =
useFlowState(flow)
const { launch, konnector } = flow

const lastSuccessDate = getLastSuccessDate(trigger)
const isKonnectorRunnable = isRunnable({ win: window, konnector })

useEffect(() => {
if (status === SUCCESS) {
setShowSuccessSnackbar(true)
}
}, [status])

return (
<Alert
color="var(--paperBackground)"
icon={
running ? (
<Spinner className="u-flex" noMargin />
) : (
<KonnectorIcon
className="u-w-1 u-h-1"
konnectorSlug={getKonnectorSlug(trigger)}
/>
)
}
action={
isKonnectorRunnable && (
<Button
variant="text"
size="small"
disabled={running || disabled}
label={t('card.launchTrigger.button.label')}
onClick={() => launch({ autoSuccessTimer: false })}
/>
)
}
>
<Typography variant="caption">
{makeLabel({
t,
f,
running,
expectingTriggerLaunch,
lastSuccessDate
})}
</Typography>
</Alert>
<>
<Alert
color="var(--paperBackground)"
icon={
running ? (
<Spinner className="u-flex" noMargin />
) : (
<KonnectorIcon
className="u-w-1 u-h-1"
konnectorSlug={getKonnectorSlug(trigger)}
/>
)
}
action={
isKonnectorRunnable && (
<Button
variant="text"
size="small"
disabled={running || disabled}
label={t('card.launchTrigger.button.label')}
onClick={() => launch({ autoSuccessTimer: false })}
/>
)
}
>
<Typography variant="caption">
{makeLabel({
t,
f,
running,
expectingTriggerLaunch,
lastSuccessDate
})}
</Typography>
</Alert>
<Snackbar
open={showSuccessSnackbar}
onClose={() => setShowSuccessSnackbar(false)}
>
<Alert
variant="filled"
elevation={6}
severity="success"
onClose={() => setShowSuccessSnackbar(false)}
>
{t('card.launchTrigger.success')}
</Alert>
</Snackbar>
</>
)
}

Expand Down
1 change: 1 addition & 0 deletions packages/cozy-harvest-lib/src/locales/en.json
Expand Up @@ -77,6 +77,7 @@
"button": {
"label": "Run again now"
},
"success": "Successful synchronization",
"error": "An error occured.",
"frequency": {
"label": "Frequency:",
Expand Down
1 change: 1 addition & 0 deletions packages/cozy-harvest-lib/src/locales/fr.json
Expand Up @@ -77,6 +77,7 @@
"button": {
"label": "Mettre à jour"
},
"success": "Synchronisation réussie",
"error": "Une erreur est survenue.",
"frequency": {
"label": "Fréquence :",
Expand Down

0 comments on commit 242544e

Please sign in to comment.