Skip to content

Commit fe5005e

Browse files
authored
Add PageEvent.next_event (#192)
1 parent d3a8e6c commit fe5005e

File tree

4 files changed

+8
-2
lines changed

4 files changed

+8
-2
lines changed

demo/auth.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ def auth_login_content(kind: LoginKind) -> list[AnyComponent]:
8989
)
9090
),
9191
c.Paragraph(text='(Passwords are not saved and is email stored in the browser via a JWT only)'),
92-
c.ModelForm(model=LoginForm, submit_url='/api/auth/login'),
92+
c.ModelForm(model=LoginForm, submit_url='/api/auth/login', display_mode='page'),
9393
]
9494
case 'github':
9595
return [

src/npm-fastui/src/events.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@ export function useFireEvent(): { fireEvent: (event?: AnyEvent) => void } {
3131
}
3232
const detail: PageEventDetail = { clear: event.clear || false, context: event.context }
3333
document.dispatchEvent(new CustomEvent(pageEventType(event), { detail }))
34+
if (event.nextEvent) {
35+
fireEventImpl(event.nextEvent)
36+
}
3437
break
3538
}
3639
case 'go-to':
@@ -61,6 +64,8 @@ export function useFireEvent(): { fireEvent: (event?: AnyEvent) => void } {
6164
}
6265
}
6366

67+
// fireEventImpl is recursive, but it doens't make sense for fireEvent to have fireEventImpl as a dep
68+
// eslint-disable-next-line react-hooks/exhaustive-deps
6469
const fireEvent = useCallback(fireEventImpl, [location])
6570

6671
return { fireEvent }
@@ -97,7 +102,6 @@ export function usePageEventListen(event?: PageEvent, initialContext: ContextTyp
97102
}
98103

99104
const onEvent = (e: Event) => {
100-
console.log('event:', e)
101105
const event = e as CustomEvent<PageEventDetail>
102106
const { context, clear } = event.detail
103107
if (clear) {

src/npm-fastui/src/models.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,7 @@ export interface PageEvent {
136136
pushPath?: string
137137
context?: ContextType
138138
clear?: boolean
139+
nextEvent?: PageEvent | GoToEvent | BackEvent | AuthEvent
139140
type: 'page'
140141
}
141142
export interface ContextType {

src/python-fastui/fastui/events.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ class PageEvent(BaseModel):
1111
push_path: Union[str, None] = Field(default=None, serialization_alias='pushPath')
1212
context: Union[ContextType, None] = None
1313
clear: Union[bool, None] = None
14+
next_event: 'Union[AnyEvent, None]' = Field(default=None, serialization_alias='nextEvent')
1415
type: Literal['page'] = 'page'
1516

1617

0 commit comments

Comments
 (0)