Creating a group from create market adds it immediately

This commit is contained in:
James Grugett 2022-09-18 14:24:29 -05:00
parent c9e782faa7
commit 1da4373335
3 changed files with 24 additions and 6 deletions

View File

@ -16,10 +16,18 @@ export function CreateGroupButton(props: {
label?: string
onOpenStateChange?: (isOpen: boolean) => void
goToGroupOnSubmit?: boolean
addGroupIdParamOnSubmit?: boolean
icon?: JSX.Element
}) {
const { user, className, label, onOpenStateChange, goToGroupOnSubmit, icon } =
props
const {
user,
className,
label,
onOpenStateChange,
goToGroupOnSubmit,
addGroupIdParamOnSubmit,
icon,
} = props
const [name, setName] = useState('')
const [isSubmitting, setIsSubmitting] = useState(false)
@ -53,6 +61,12 @@ export function CreateGroupButton(props: {
console.log(e)
setErrorText(e.message)
})
else if (addGroupIdParamOnSubmit) {
router.replace({
pathname: router.pathname,
query: { ...router.query, groupId: result.group.id },
})
}
setIsSubmitting(false)
return true
} else {

View File

@ -131,7 +131,7 @@ export function GroupSelector(props: {
)}
<span
className={clsx(
'ml-3 mt-1 block flex flex-row justify-between',
'ml-3 mt-1 flex flex-row justify-between',
selected && 'font-semibold'
)}
>
@ -166,7 +166,7 @@ export function GroupSelector(props: {
'w-full justify-start rounded-none border-0 bg-white pl-2 font-normal text-gray-900 hover:bg-indigo-500 hover:text-white'
}
label={'Create a new Group'}
goToGroupOnSubmit={false}
addGroupIdParamOnSubmit
icon={
<PlusCircleIcon className="text-primary mr-2 h-5 w-5" />
}

View File

@ -13,7 +13,11 @@ export const useWarnUnsavedChanges = (hasUnsavedChanges: boolean) => {
return confirmationMessage
}
const beforeRouteHandler = () => {
const beforeRouteHandler = (href: string) => {
const pathname = href.split('?')[0]
// Don't warn if the user is navigating to the same page.
if (pathname === location.pathname) return
if (!confirm(confirmationMessage)) {
Router.events.emit('routeChangeError')
throw 'Abort route change. Please ignore this error.'
@ -21,7 +25,7 @@ export const useWarnUnsavedChanges = (hasUnsavedChanges: boolean) => {
}
window.addEventListener('beforeunload', warnUnsavedChanges)
Router.events.on('routeChangeStart', beforeRouteHandler)
Router.events.on('routeChangeStart', (href) => beforeRouteHandler(href))
return () => {
window.removeEventListener('beforeunload', warnUnsavedChanges)