public IEnumerator Hooks_GenerateChildWith_ButThrowError()
    {
        var listState = new UseState <List <string> >(); // <-- Not create a new list

        // A Component
        REcanvas MainReactorComponent()
        {
            return(new REcanvas
            {
                propsId = () => new REcanvas.IdSetter
                {
                    id = "MainCanvas",
                },
                useState = new IuseState[]
                {
                    listState,
                },
                childs = () => throw new Exception("Expected exception"),
            });
        }
Пример #2
0
    private REcanvas ConsoleView()
    {
        var    addChildToConsole = new UseAddChilds();
        var    textAddedTrigger  = new UseTrigger();
        var    deleteAllTrigger  = new UseTrigger();
        var    copyTextTrigger   = new UseTrigger();
        string inputText         = "";


        REbase TextChild(string text)
        {
            string displayText = text;
            var    editMode    = new UseState <bool>(false);

            return(new REbox
            {
                propsRectTransform = () => new REbox.RectTransformSetter
                {
                    height = 200,
                    width = 800,
                },
                childs = () => new REbase[]
                {
                    new REpanelHorizontal
                    {
                        childs = () =>
                        {
                            return new REbase[]
                            {
                                new REbox
                                {
                                    propsRectTransform = () => new REbox.RectTransformSetter
                                    {
                                        width = 400,
                                        height = 200,
                                    },
                                    useState = new IuseState[]
                                    {
                                        editMode,
                                    },
                                    childs = () =>
                                    {
                                        if (editMode.value)
                                        {
                                            return new REbase[]
                                            {
                                                new REinputField
                                                {
                                                    propsInputField = () => new REinputField.InputFieldSetter
                                                    {
                                                        text = displayText,
                                                        OnValueChangedListener = (v, s) =>
                                                        {
                                                            displayText = v;
                                                        }
                                                    },
                                                },
                                            };
                                        }
                                        else
                                        {
                                            return new REbase[]
                                            {
                                                new RElabel
                                                {
                                                    propsText = () => new RElabel.TextSetter
                                                    {
                                                        text = displayText,
                                                    },
                                                },
                                            };
                                        }
                                    }
                                },
                                new REbutton
                                {
                                    propsText = () =>
                                    {
                                        if (editMode.value)
                                        {
                                            return new REbutton.TextSetter
                                            {
                                                text = "Save"
                                            }
                                        }
                                        ;
                                        else
                                        {
                                            return new REbutton.TextSetter
                                            {
                                                text = "Edit"
                                            }
                                        };
                                    },
                                    propsButton = () => new REbutton.ButtonSetter
                                    {
                                        OnClickListener = (s) =>
                                        {
                                            editMode.SetState(!editMode.value);
                                        }
                                    },
                                    useState = new IuseState[]
                                    {
                                        editMode,
                                    },
                                },
                                new REbutton
                                {
                                    propsText = () => new REbutton.TextSetter
                                    {
                                        text = "Copy",
                                    },
                                    propsButton = () => new REbutton.ButtonSetter
                                    {
                                        OnClickListener = (s) =>
                                        {
                                            inputText = displayText;
                                            copyTextTrigger.Trigger();
                                        }
                                    },
                                },
                                new REbutton
                                {
                                    propsText = () => new REbutton.TextSetter
                                    {
                                        text = "Delete",
                                    },
                                    propsButton = () => new REbutton.ButtonSetter
                                    {
                                        OnClickListener = (s) =>
                                        {
                                            Debug.Log(s.parent.parent.elementId.elementType + " r " + s.parent.parent.parent.childs.Length);
                                            s.parent.parent.Erase();
                                        }
                                    },
                                },
                            };
                        }
                    },
                }
            });