From e3f7f5cebbb93822a3be6998d57d57cebcc9efe9 Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Thu, 6 Aug 2020 18:00:16 -0400 Subject: [PATCH] =?UTF-8?q?refactor:=20=F0=9F=92=A1=20add=20support=20for?= =?UTF-8?q?=20fully=20contextual=20input=20field?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/rose/form/input.stories.mdx | 39 ++++++++++ .../templates/components/rose/form/input.hbs | 71 +++++++++++++------ .../components/rose/form/input/input.hbs | 2 +- .../templates/components/rose/form/select.hbs | 3 +- .../components/rose/form/textarea.hbs | 2 +- .../rose/form/textarea/textarea.hbs | 2 +- .../components/rose/form/input-test.js | 19 +++++ 7 files changed, 110 insertions(+), 28 deletions(-) diff --git a/addons/rose/addon/components/rose/form/input.stories.mdx b/addons/rose/addon/components/rose/form/input.stories.mdx index 7843c4cfd..041507976 100644 --- a/addons/rose/addon/components/rose/form/input.stories.mdx +++ b/addons/rose/addon/components/rose/form/input.stories.mdx @@ -22,6 +22,24 @@ Renders a simple form input. /> ``` +Or a fully contextual component without a wrapper, for maximum flexibility. + +```htmlbars + + + +``` + {{ template: hbs` @@ -94,3 +112,24 @@ Renders a simple form input. } }} + + + {{ + template: hbs` + +
+ Label +
+ Help +
+ +
+ + An error occurred. + +
+
+ `, + context: {}, + }}
+
diff --git a/addons/rose/addon/templates/components/rose/form/input.hbs b/addons/rose/addon/templates/components/rose/form/input.hbs index d232bf07b..9bf8003e3 100644 --- a/addons/rose/addon/templates/components/rose/form/input.hbs +++ b/addons/rose/addon/templates/components/rose/form/input.hbs @@ -1,29 +1,54 @@ -
- - - {{@label}} - - - {{#if @helperText}} - - {{@helperText}} - - {{/if}} - - - +{{#if @contextual}} {{yield (hash + label=(component 'rose/form/label' + for=this.id + error=@error + ) + helperText=(component 'rose/form/helper-text' + id=(concat 'helper-text-' this.id) + error=@error + ) + field=(component 'rose/form/input/input' + id=this.id + name=@name + value=@value + type=@type + disabled=@disabled + error=@error + aria-describedby=(concat (if @helperText (concat 'helper-text-' this.id)) (if @error (concat ' errors-' this.id))) + ) errors=(component 'rose/form/errors' id=(concat 'errors-' this.id) ) )}} +{{else}} +
-
+ + {{@label}} + + + {{#if @helperText}} + + {{@helperText}} + + {{/if}} + + + + {{yield (hash + errors=(component 'rose/form/errors' + id=(concat 'errors-' this.id) + ) + )}} + +
+{{/if}} diff --git a/addons/rose/addon/templates/components/rose/form/input/input.hbs b/addons/rose/addon/templates/components/rose/form/input/input.hbs index c7153718c..95e81a114 100644 --- a/addons/rose/addon/templates/components/rose/form/input/input.hbs +++ b/addons/rose/addon/templates/components/rose/form/input/input.hbs @@ -1,6 +1,6 @@ {{yield (hash diff --git a/addons/rose/addon/templates/components/rose/form/textarea/textarea.hbs b/addons/rose/addon/templates/components/rose/form/textarea/textarea.hbs index dba3196d5..85add1b87 100644 --- a/addons/rose/addon/templates/components/rose/form/textarea/textarea.hbs +++ b/addons/rose/addon/templates/components/rose/form/textarea/textarea.hbs @@ -1,6 +1,6 @@