|
127 | 127 | import camelCase from 'lodash/camelCase';
|
128 | 128 | import useKResponsiveWindow from 'kolibri-design-system/lib/composables/useKResponsiveWindow';
|
129 | 129 | import useChannels from 'kolibri-common/composables/useChannels';
|
| 130 | + import { validateObject } from 'kolibri/utils/objectSpecs'; |
130 | 131 | import LearningActivityLabel from './LearningActivityLabel';
|
131 | 132 | import LearningActivityDuration from './LearningActivityDuration';
|
132 | 133 | import commonLearnStrings from './commonLearnStrings';
|
|
157 | 158 | contentNode: {
|
158 | 159 | type: Object,
|
159 | 160 | required: true,
|
| 161 | + validator(val) { |
| 162 | + return validateObject(val, { |
| 163 | + id: { type: String, required: true }, |
| 164 | + title: { type: String, required: true }, |
| 165 | + description: { type: String, required: false }, |
| 166 | + duration: { type: Number, required: false }, |
| 167 | + grade_levels: { type: Array, required: false }, |
| 168 | + lang: { type: Object, required: false }, |
| 169 | + accessibility_labels: { type: Array, required: false, default: () => [] }, |
| 170 | + learner_needs: { type: Array, required: false, default: () => [] }, |
| 171 | + author: { type: String, required: false }, |
| 172 | + license_owner: { type: String, required: false }, |
| 173 | + license_name: { type: String, required: false }, |
| 174 | + license_description: { type: String, required: false }, |
| 175 | + ancestors: { type: Array, required: false, default: () => [] }, |
| 176 | + files: { type: Array, required: false, default: () => [] }, |
| 177 | + is_leaf: { type: Boolean, required: true }, |
| 178 | + copies: { type: Array, required: false, default: () => [] }, |
| 179 | + channel_id: { type: String, required: false }, |
| 180 | + categories: { type: Array, required: false, default: () => [] }, |
| 181 | + }); |
| 182 | + }, |
160 | 183 | },
|
161 | 184 | to: {
|
162 | 185 | type: Object,
|
|
0 commit comments