From c8c1f1ea2b489555120ac989fb9845b2331f32d0 Mon Sep 17 00:00:00 2001 From: cha0s Date: Sat, 20 Jun 2020 01:38:35 -0500 Subject: [PATCH] flow: fixes --- src/client/components/entity.jsx | 6 ++---- src/client/components/persea.jsx | 5 +---- .../components/types/routines.type-renderer.jsx | 2 +- src/client/components/types/steps-lists.js | 14 +++++++++----- src/client/components/types/steps.raw.scss | 2 ++ src/client/components/types/typing.js | 5 ++++- .../components/types/value.type-renderer.jsx | 1 + 7 files changed, 20 insertions(+), 15 deletions(-) diff --git a/src/client/components/entity.jsx b/src/client/components/entity.jsx index 2169468..1b65a6f 100644 --- a/src/client/components/entity.jsx +++ b/src/client/components/entity.jsx @@ -9,18 +9,16 @@ const decorate = compose( contempo(require('./entity.raw.scss')), ); -const json = require('~/../fixtures/kitty.entity.json'); +const json = require('~/../fixtures/watering-can.entity.json'); const EntityComponent = (props) => { - const {context} = props; const entity = new Entity(json); - context.add('entity', entity, 'entity'); const {traits} = json; return (
- +
); diff --git a/src/client/components/persea.jsx b/src/client/components/persea.jsx index 602b659..f260613 100644 --- a/src/client/components/persea.jsx +++ b/src/client/components/persea.jsx @@ -1,13 +1,10 @@ -import {Context} from '@avocado/behavior'; import {hot} from 'react-hot-loader'; import React from 'react'; import Entity from './entity'; -const context = new Context(); - const Persea = () => ( - + ); export default hot(module)(Persea); diff --git a/src/client/components/types/routines.type-renderer.jsx b/src/client/components/types/routines.type-renderer.jsx index 1faba6e..60fd75b 100644 --- a/src/client/components/types/routines.type-renderer.jsx +++ b/src/client/components/types/routines.type-renderer.jsx @@ -15,7 +15,7 @@ const Routines = ({ context, value, }) => { - const entries = Object.entries(value.routines); + const entries = value.routines ? Object.entries(value.routines) : []; return (
    diff --git a/src/client/components/types/steps-lists.js b/src/client/components/types/steps-lists.js index efcd291..5112c67 100644 --- a/src/client/components/types/steps-lists.js +++ b/src/client/components/types/steps-lists.js @@ -20,12 +20,16 @@ export const variableStepsList = (context, previousSteps, key, variable, variabl steps.push({type: 'invoke', args: []}); } } - if (!variable) { - return [steps]; - } const sublists = Object.entries(description) .map(([key, description]) => ( - variableStepsList(context, previousSteps.concat(steps), key, variable[key], description.type, type) + variableStepsList( + context, + previousSteps.concat(steps), + key, + 'undefined' === typeof variable ? undefined : variable[key], + description.type, + type + ) )) .map((childLists) => ( childLists.map((stepsList) => ( @@ -34,7 +38,7 @@ export const variableStepsList = (context, previousSteps, key, variable, variabl : [] )) )) - return sublists.length > 0 ? flatten(sublists) : [steps]; + return sublists.length > 0 ? [steps].concat(flatten(sublists)) : [steps]; }; export const contextStepsList = (context, type) => ( diff --git a/src/client/components/types/steps.raw.scss b/src/client/components/types/steps.raw.scss index 2cfd92e..33f2b98 100644 --- a/src/client/components/types/steps.raw.scss +++ b/src/client/components/types/steps.raw.scss @@ -38,6 +38,8 @@ } .invoke { + display: flex; + flex-direction: column; padding-left: 1em; } diff --git a/src/client/components/types/typing.js b/src/client/components/types/typing.js index b8dec3e..3d450e3 100644 --- a/src/client/components/types/typing.js +++ b/src/client/components/types/typing.js @@ -31,7 +31,10 @@ export function typeFromSteps(context, steps) { const {key} = step; if (key) { const description = Context.typeDescription(type, v); - return [v[key], description[key] ? description[key].type : type]; + return [ + 'object' === typeof v ? v[key] : undefined, + description[key] ? description[key].type : type + ]; } else { return [v, type]; diff --git a/src/client/components/types/value.type-renderer.jsx b/src/client/components/types/value.type-renderer.jsx index f9d04e5..29d928e 100644 --- a/src/client/components/types/value.type-renderer.jsx +++ b/src/client/components/types/value.type-renderer.jsx @@ -44,6 +44,7 @@ const renderValue = (context, type, value) => { return ; case 'number': return ; + case 'any': case 'string': return ; case 'object':