Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(@aws-amplify/ui-components): Open up slot for sign-in/up footer #5603

Merged
merged 12 commits into from Apr 30, 2020
Expand Up @@ -7,18 +7,24 @@ exports[`amplify-sign-in spec: Render logic -> should render a \`sign in\` form
<amplify-federated-buttons></amplify-federated-buttons>
<amplify-auth-fields></amplify-auth-fields>
<div class="sign-in-form-footer" slot="amplify-form-section-footer">
<span>
No account?
<amplify-button data-test="sign-in-create-account-link" variant="anchor">
Create account
</amplify-button>
</span>
<amplify-button data-test="sign-in-sign-in-button" type="submit">
<amplify-loading-spinner style="display: none;"></amplify-loading-spinner>
<span style="display: initial;">
Sign In
</span>
</amplify-button>
<slot name="footer">
<slot name="secondary-footer-content">
<span>
No account?
<amplify-button data-test="sign-in-create-account-link" variant="anchor">
Create account
</amplify-button>
</span>
</slot>
<slot name="primary-footer-content">
<amplify-button data-test="sign-in-sign-in-button" type="submit">
<amplify-loading-spinner style="display: none;"></amplify-loading-spinner>
<span style="display: initial;">
Sign In
</span>
</amplify-button>
</slot>
</slot>
</div>
</amplify-form-section>
</mock:shadow-root>
Expand All @@ -32,18 +38,24 @@ exports[`amplify-sign-in spec: amplify-sign-in stories stories withEmptyFederate
<amplify-federated-buttons></amplify-federated-buttons>
<amplify-auth-fields></amplify-auth-fields>
<div class="sign-in-form-footer" slot="amplify-form-section-footer">
<span>
No account?
<amplify-button data-test="sign-in-create-account-link" variant="anchor">
Create account
</amplify-button>
</span>
<amplify-button data-test="sign-in-sign-in-button" type="submit">
<amplify-loading-spinner style="display: none;"></amplify-loading-spinner>
<span style="display: initial;">
Sign In
</span>
</amplify-button>
<slot name="footer">
<slot name="secondary-footer-content">
<span>
No account?
<amplify-button data-test="sign-in-create-account-link" variant="anchor">
Create account
</amplify-button>
</span>
</slot>
<slot name="primary-footer-content">
<amplify-button data-test="sign-in-sign-in-button" type="submit">
<amplify-loading-spinner style="display: none;"></amplify-loading-spinner>
<span style="display: initial;">
Sign In
</span>
</amplify-button>
</slot>
</slot>
</div>
</amplify-form-section>
</mock:shadow-root>
Expand All @@ -60,18 +72,24 @@ exports[`amplify-sign-in spec: amplify-sign-in stories stories withFederated 1`]
</amplify-strike>
<amplify-auth-fields></amplify-auth-fields>
<div class="sign-in-form-footer" slot="amplify-form-section-footer">
<span>
No account?
<amplify-button data-test="sign-in-create-account-link" variant="anchor">
Create account
</amplify-button>
</span>
<amplify-button data-test="sign-in-sign-in-button" type="submit">
<amplify-loading-spinner style="display: none;"></amplify-loading-spinner>
<span style="display: initial;">
Sign In
</span>
</amplify-button>
<slot name="footer">
<slot name="secondary-footer-content">
<span>
No account?
<amplify-button data-test="sign-in-create-account-link" variant="anchor">
Create account
</amplify-button>
</span>
</slot>
<slot name="primary-footer-content">
<amplify-button data-test="sign-in-sign-in-button" type="submit">
<amplify-loading-spinner style="display: none;"></amplify-loading-spinner>
<span style="display: initial;">
Sign In
</span>
</amplify-button>
</slot>
</slot>
</div>
</amplify-form-section>
</mock:shadow-root>
Expand Down
@@ -1,6 +1,6 @@
import { Auth } from '@aws-amplify/auth';
import { I18n, Logger, isEmpty } from '@aws-amplify/core';
import { Component, Prop, State, h } from '@stencil/core';
import { Component, Prop, State, Host, h } from '@stencil/core';
import {
FormFieldTypes,
PhoneNumberInterface,
Expand Down Expand Up @@ -29,7 +29,11 @@ import {
import { SignInAttributes } from './amplify-sign-in-interface';

const logger = new Logger('SignIn');

/**
* @slot footer - Content is place in the footer of the component
* @slot primary-footer-content - Content placed on the right side of the footer
* @slot secondary-footer-content - Content placed on the left side of the footer
*/
@Component({
tag: 'amplify-sign-in',
styleUrl: 'amplify-sign-in.scss',
Expand Down Expand Up @@ -261,29 +265,37 @@ export class AmplifySignIn {

render() {
return (
<amplify-form-section headerText={this.headerText} handleSubmit={this.handleSubmit} testDataPrefix={'sign-in'}>
<amplify-federated-buttons handleAuthStateChange={this.handleAuthStateChange} federated={this.federated} />
<Host>
jordanranz marked this conversation as resolved.
Show resolved Hide resolved
<amplify-form-section headerText={this.headerText} handleSubmit={this.handleSubmit} testDataPrefix={'sign-in'}>
<amplify-federated-buttons handleAuthStateChange={this.handleAuthStateChange} federated={this.federated} />

{!isEmpty(this.federated) && <amplify-strike>or</amplify-strike>}
{!isEmpty(this.federated) && <amplify-strike>or</amplify-strike>}

<amplify-auth-fields formFields={this.newFormFields} />
<div slot="amplify-form-section-footer" class="sign-in-form-footer">
<span>
{I18n.get(Translations.NO_ACCOUNT_TEXT)}{' '}
<amplify-button
variant="anchor"
onClick={() => this.handleAuthStateChange(AuthState.SignUp)}
data-test="sign-in-create-account-link"
>
{I18n.get(Translations.CREATE_ACCOUNT_TEXT)}
</amplify-button>
</span>
<amplify-button type="submit" disabled={this.loading} data-test="sign-in-sign-in-button">
<amplify-loading-spinner style={{ display: this.loading ? 'initial' : 'none' }} />
<span style={{ display: this.loading ? 'none' : 'initial' }}>{this.submitButtonText}</span>
</amplify-button>
</div>
</amplify-form-section>
<amplify-auth-fields formFields={this.newFormFields} />
<div slot="amplify-form-section-footer" class="sign-in-form-footer">
<slot name="footer">
<slot name="secondary-footer-content">
<span>
{I18n.get(Translations.NO_ACCOUNT_TEXT)}{' '}
<amplify-button
variant="anchor"
onClick={() => this.handleAuthStateChange(AuthState.SignUp)}
data-test="sign-in-create-account-link"
>
{I18n.get(Translations.CREATE_ACCOUNT_TEXT)}
</amplify-button>
</span>
</slot>
<slot name="primary-footer-content">
<amplify-button type="submit" disabled={this.loading} data-test="sign-in-sign-in-button">
<amplify-loading-spinner style={{ display: this.loading ? 'initial' : 'none' }} />
<span style={{ display: this.loading ? 'none' : 'initial' }}>{this.submitButtonText}</span>
</amplify-button>
</slot>
</slot>
</div>
</amplify-form-section>
</Host>
);
}
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Expand Up @@ -6,18 +6,24 @@ exports[`amplify-sign-up spec: Render logic -> should render a \`sign up\` form
<amplify-form-section headertext="Create a new account" testdataprefix="sign-up">
<amplify-auth-fields></amplify-auth-fields>
<div class="sign-up-form-footer" slot="amplify-form-section-footer">
<span>
Have an account?
<amplify-button data-test="sign-up-sign-in-link" variant="anchor">
Sign in
</amplify-button>
</span>
<amplify-button data-test="sign-up-create-account-button" type="submit">
<amplify-loading-spinner style="display: none;"></amplify-loading-spinner>
<span style="display: initial;">
Create Account
</span>
</amplify-button>
<slot name="footer">
<slot name="secondary-footer-content">
<span>
Have an account?
<amplify-button data-test="sign-up-sign-in-link" variant="anchor">
Sign in
</amplify-button>
</span>
</slot>
<slot name="primary-footer-content">
<amplify-button data-test="sign-up-create-account-button" type="submit">
<amplify-loading-spinner style="display: none;"></amplify-loading-spinner>
<span style="display: initial;">
Create Account
</span>
</amplify-button>
</slot>
</slot>
</div>
</amplify-form-section>
</mock:shadow-root>
Expand Down
@@ -1,6 +1,6 @@
import { I18n } from '@aws-amplify/core';
import { Auth } from '@aws-amplify/auth';
import { Component, Prop, h, State } from '@stencil/core';
import { Component, Prop, h, State, Host } from '@stencil/core';
import {
FormFieldTypes,
PhoneNumberInterface,
Expand All @@ -21,6 +21,11 @@ import {
} from '../../common/helpers';
import { Translations } from '../../common/Translations';

/**
* @slot footer - Content is place in the footer of the component
* @slot primary-footer-content - Content placed on the right side of the footer
* @slot secondary-footer-content - Content placed on the left side of the footer
*/
@Component({
tag: 'amplify-sign-up',
styleUrl: 'amplify-sign-up.scss',
Expand Down Expand Up @@ -268,25 +273,33 @@ export class AmplifySignUp {

render() {
return (
<amplify-form-section headerText={this.headerText} handleSubmit={this.handleSubmit} testDataPrefix={'sign-up'}>
<amplify-auth-fields formFields={this.newFormFields} />
<div class="sign-up-form-footer" slot="amplify-form-section-footer">
<span>
{this.haveAccountText}{' '}
<amplify-button
variant="anchor"
onClick={() => this.handleAuthStateChange(AuthState.SignIn)}
data-test="sign-up-sign-in-link"
>
{this.signInText}
</amplify-button>
</span>
<amplify-button type="submit" data-test="sign-up-create-account-button">
<amplify-loading-spinner style={{ display: this.loading ? 'initial' : 'none' }} />
<span style={{ display: this.loading ? 'none' : 'initial' }}>{this.submitButtonText}</span>
</amplify-button>
</div>
</amplify-form-section>
<Host>
<amplify-form-section headerText={this.headerText} handleSubmit={this.handleSubmit} testDataPrefix={'sign-up'}>
<amplify-auth-fields formFields={this.newFormFields} />
<div class="sign-up-form-footer" slot="amplify-form-section-footer">
<slot name="footer">
<slot name="secondary-footer-content">
<span>
{this.haveAccountText}{' '}
<amplify-button
variant="anchor"
onClick={() => this.handleAuthStateChange(AuthState.SignIn)}
data-test="sign-up-sign-in-link"
>
{this.signInText}
</amplify-button>
</span>
</slot>
<slot name="primary-footer-content">
<amplify-button type="submit" data-test="sign-up-create-account-button">
<amplify-loading-spinner style={{ display: this.loading ? 'initial' : 'none' }} />
<span style={{ display: this.loading ? 'none' : 'initial' }}>{this.submitButtonText}</span>
</amplify-button>
</slot>
</slot>
</div>
</amplify-form-section>
</Host>
);
}
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.