import type { EntityID } from '@wovin/core/applog' import type { Accessor, Component } from 'solid-js' import type { SortableBlockItem } from './SortableBlocks' import { observableArrayMap } from '@wovin/core/query' import { Logger } from 'besonders-logger' import classNames from 'classnames' import { createMemo, For, Show, untrack } from 'solid-js' import { SurveySlider } from '../../../ui-solid-showcase/src/components/SurveySlider' import { useBlk } from '../data/VMs/BlockVM' import { useRel } from '../data/VMs/RelationVM' import { useKidRelations, useRawThread, withDS } from '../ui/reactive' import { BlockItem } from './BlockContent' import { SortableBlocks } from './SortableBlocks' import { TreeItem } from './TreeItem' import '../../../ui-solid-showcase/src/components/SurveySlider.css' const { WARN, LOG, DEBUG, VERBOSE, ERROR } = Logger.setup(Logger.DEBUG) export const KidsAsSurvey: Component<{ blockID?: EntityID disabled?: boolean class?: string items: readonly SortableBlockItem[] }> = (props) => { DEBUG(` created`, untrack(() => ({ ...props }))) const rawThread = useRawThread() return (
{(surveyItem, index: Accessor) => { const blockVM = useBlk(surveyItem.blockID) const kidRelationIDs = surveyItem.blockID && observableArrayMap(() => withDS(rawThread, () => useKidRelations(surveyItem.blockID).map(({ en }) => en))) const kidsForThisQuestion = createMemo(function kidItemsFromRelations() { if (kidRelationIDs) { return kidRelationIDs.map((relationID) => { const rel = useRel(relationID) const block = useBlk(rel.block) if (!block) WARN('rel refers to missing block', { block, rel }) return ({ id: relationID, relationID, blockID: rel.block, type: block?.type, }) }) satisfies SortableBlockItem[] } }) return (
{/* */} false} setExpanded={() => {}} class='mb-4' />
DEBUG('Survey response for', surveyItem.blockID, val)} />
{item => ( )}
) }}
) }