Skip to content

Commit

Permalink
Delete button & fixes (#384)
Browse files Browse the repository at this point in the history
* Implement date delete & fix display issue
  • Loading branch information
khoidt committed Aug 16, 2023
1 parent 3fa13df commit 7ef691c
Show file tree
Hide file tree
Showing 4 changed files with 77 additions and 54 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ const date = {
day: {
value: '1',
},
era: 'Seleucid',
isSeleucidEra: true,
month: {
value: '1',
},
Expand Down
125 changes: 73 additions & 52 deletions src/fragmentarium/ui/info/DateSelection.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ import {

type Props = {
fragment: Fragment
updateDate: (date: MesopotamianDate) => Bluebird<Fragment>
updateDate: (date?: MesopotamianDate) => Bluebird<Fragment>
}

export default function DateSelection({
Expand Down Expand Up @@ -80,64 +80,85 @@ export default function DateSelection({
})
}

const saveDate = (updatedDate?: MesopotamianDate): void => {
if (updatedDate !== date) {
cancelUpdatePromise()
setIsSaving(true)
setUpdatePromise(
updateDate(updatedDate)
.then(() => setIsSaving(false))
.then(() => setIsDisplayed(false))
.then(() => setDate(updatedDate))
)
}
}

const saveButton = (
<Button
className="m-1"
disabled={false}
onClick={() => saveDate(getDate())}
>
Save
</Button>
)

const deleteButton = (
<Button
className="m-1"
variant="danger"
disabled={false}
onClick={() => saveDate()}
>
Delete
</Button>
)

const kingInput = getKingInput({
date,
isSeleucidEra,
isCalendarFieldDisplayed,
ur3Calendar,
setKing,
setIsSeleucidEra,
setIsCalenderFieldDisplayed,
setUr3Calendar,
})

const dateInputGroups = getDateInputGroups({
yearValue,
yearBroken,
yearUncertain,
monthValue,
monthBroken,
monthUncertain,
isIntercalary,
dayValue,
dayBroken,
dayUncertain,
setYearValue,
setYearBroken,
setYearUncertain,
setMonthValue,
setMonthBroken,
setMonthUncertain,
setIntercalary,
setDayValue,
setDayBroken,
setDayUncertain,
})

const popover = (
<Popover
style={{ maxWidth: '600px' }}
id="popover-select-date"
className={'w-100'}
>
<Popover.Content>
{getKingInput({
date,
isSeleucidEra,
isCalendarFieldDisplayed,
ur3Calendar,
setKing,
setIsSeleucidEra,
setIsCalenderFieldDisplayed,
setUr3Calendar,
})}
{getDateInputGroups({
yearValue,
yearBroken,
yearUncertain,
monthValue,
monthBroken,
monthUncertain,
isIntercalary,
dayValue,
dayBroken,
dayUncertain,
setYearValue,
setYearBroken,
setYearUncertain,
setMonthValue,
setMonthBroken,
setMonthUncertain,
setIntercalary,
setDayValue,
setDayBroken,
setDayUncertain,
})}
<Button
className="m-1"
disabled={false}
onClick={() => {
const updatedDate = getDate()
if (updatedDate !== date) {
cancelUpdatePromise()
setIsSaving(true)
setUpdatePromise(
updateDate(updatedDate)
.then(() => setIsSaving(false))
.then(() => setIsDisplayed(false))
.then(() => setDate(updatedDate))
)
}
}}
>
Save
</Button>
{kingInput}
{dateInputGroups}
{date && deleteButton}
{saveButton}
<Spinner loading={isSaving}>Saving...</Spinner>
</Popover.Content>
</Popover>
Expand Down
2 changes: 2 additions & 0 deletions src/fragmentarium/ui/info/DateSelectionInput.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ export function getKingInput(props: KingInputProps): JSX.Element {
}

function getSeleucidSwitch({
isSeleucidEra,
setIsSeleucidEra,
setIsCalenderFieldDisplayed,
}: KingInputProps): JSX.Element {
Expand All @@ -80,6 +81,7 @@ function getSeleucidSwitch({
setIsCalenderFieldDisplayed(false)
}
}}
checked={isSeleucidEra}
/>
)
}
Expand Down
2 changes: 1 addition & 1 deletion src/fragmentarium/ui/info/Details.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ interface DetailsProps {
readonly fragment: Fragment
readonly updateGenres: (genres: Genres) => void
readonly updateScript: (script: Script) => Bluebird<Fragment>
readonly updateDate: (script: MesopotamianDate) => Bluebird<Fragment>
readonly updateDate: (date?: MesopotamianDate) => Bluebird<Fragment>
readonly fragmentService: FragmentService
}

Expand Down

0 comments on commit 7ef691c

Please sign in to comment.