focalboard/webapp/src/blocks/card.ts

42 lines
1.1 KiB
TypeScript

// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import {Block, createBlock} from './block'
type CardFields = {
icon?: string
isTemplate?: boolean
properties: Record<string, string | string[]>
contentOrder: Array<string | string[]>
}
type Card = Block & {
fields: CardFields
}
function createCard(block?: Block): Card {
const contentOrder: Array<string|string[]> = []
const contentIds = block?.fields?.contentOrder?.filter((id: any) => id !== null)
if (contentIds?.length > 0) {
for (const contentId of contentIds) {
if (typeof contentId === 'string') {
contentOrder.push(contentId)
} else {
contentOrder.push(contentId.slice())
}
}
}
return {
...createBlock(block),
type: 'card',
fields: {
icon: block?.fields.icon || '',
properties: {...(block?.fields.properties || {})},
contentOrder,
isTemplate: block?.fields.isTemplate || false,
},
}
}
export {Card, createCard}