Skip to content

Commit

Permalink
feat: melhora fluxo que adiciona patrocinadores
Browse files Browse the repository at this point in the history
  • Loading branch information
guiseek committed Aug 14, 2024
1 parent 06e28e3 commit 4951576
Show file tree
Hide file tree
Showing 6 changed files with 36 additions and 8 deletions.
7 changes: 6 additions & 1 deletion src/app/app.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,15 @@
import {EventHandler, FormControl, LayerSchema, Schema} from '@interfaces'
import {Form, Canvas, Sidenav, Accordion, DownloadButton} from '@elements'
import {onSponsorCreated, onSponsorSelected} from '@events/sponsor'
import {PresentationForm} from '@components/presentation'
import {ThemeToggle} from '@components/theme'
import {onFormChange} from '@events'
import {use} from '@websqnl/di'
import {h} from '@utils'
import {
onSponsorAdded,
onSponsorCreated,
onSponsorSelected,
} from '@events/sponsor'
import {
onPresentationAdded,
onPresentationCreated,
Expand Down Expand Up @@ -74,6 +78,7 @@ export const loadApp = (container: HTMLElement) => {

handler.on('sponsor.selected', onSponsorSelected)
handler.on('sponsor.created', onSponsorCreated)
handler.on('sponsor.added', onSponsorAdded)

control.sponsor.button.onclick = () => {
control.sponsor.input.click()
Expand Down
5 changes: 3 additions & 2 deletions src/app/events/sponsor/index.ts
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
export * from './sponsor.created'
export * from './sponsor.selected'
export * from './sponsor.added';
export * from './sponsor.created';
export * from './sponsor.selected';
16 changes: 16 additions & 0 deletions src/app/events/sponsor/sponsor.added.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import {LayerSchema} from '@interfaces/layer-schema'
import {FormControl} from '@interfaces/form-control'
import {use} from '@websqnl/di'

export const onSponsorAdded = () => {
const control = use(FormControl)
const layer = use(LayerSchema)

if (layer.sponsors.length < 2) {
control.sponsor.button.focus()
} else {
control.sponsor.button.disabled = true
const first = control.grid.firstElementChild?.firstElementChild ?? []
if (first instanceof HTMLInputElement) first.focus()
}
}
9 changes: 7 additions & 2 deletions src/app/events/sponsor/sponsor.created.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,19 @@
import {EventHandler} from '@interfaces/event-handler'
import {LayerSchema} from '@interfaces/layer-schema'
import {ImageLayer} from '@models/image-layer'
import {Canvas} from '@elements/canvas'
import {use} from '@websqnl/di'

export const onSponsorCreated = (sponsor: ImageLayer) => {
const layer = use(LayerSchema)
const canvas = use(Canvas)
const layer = use(LayerSchema)
const handler = use(EventHandler)

canvas.add(sponsor)
layer.sponsors.push(sponsor)

sponsor.render().then(canvas.render)
sponsor.render().then(() => {
canvas.render()
handler.emit('sponsor.added', sponsor)
})
}
3 changes: 2 additions & 1 deletion src/app/interfaces/event-map.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,9 @@ import {ImageLayer} from '@models/image-layer'
import {Schema} from './schema'

export interface EventMap {
'sponsor.created': ImageLayer
'sponsor.selected': File
'sponsor.created': ImageLayer
'sponsor.added': ImageLayer

'presentation.submitted': SubmittedPresentation
'presentation.handled': Presentation
Expand Down
4 changes: 2 additions & 2 deletions src/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -202,8 +202,8 @@ export const formControl: FormControl = {
}

formControl.grid.add(
new SliderLabel('Quantidade', 'grid', config.grid.tile),
new CheckboxLabel('Mostrar', 'gridActive', 'true', config.grid.active)
new CheckboxLabel('Mostrar', 'gridActive', 'true', config.grid.active),
new SliderLabel('Quantidade', 'grid', config.grid.tile)
)

formControl.logo.add(
Expand Down

0 comments on commit 4951576

Please sign in to comment.