diff --git a/app/components/form_link_component.html.erb b/app/components/form_link_component.html.erb deleted file mode 100644 index 7b8e0599fe3..00000000000 --- a/app/components/form_link_component.html.erb +++ /dev/null @@ -1,4 +0,0 @@ - - <%= link_to(href, **tag_options) { content } %> - <%= form_tag(href, method:, class: 'display-none') {} %> - diff --git a/app/components/form_link_component.rb b/app/components/form_link_component.rb deleted file mode 100644 index 66ca673f3fe..00000000000 --- a/app/components/form_link_component.rb +++ /dev/null @@ -1,9 +0,0 @@ -class FormLinkComponent < BaseComponent - attr_reader :href, :method, :tag_options - - def initialize(href:, method:, **tag_options) - @href = href - @method = method - @tag_options = tag_options - end -end diff --git a/app/components/form_link_component.ts b/app/components/form_link_component.ts deleted file mode 100644 index 5c47ccb4c63..00000000000 --- a/app/components/form_link_component.ts +++ /dev/null @@ -1 +0,0 @@ -import '@18f/identity-form-link/form-link-element'; diff --git a/app/javascript/packages/form-link/README.md b/app/javascript/packages/form-link/README.md deleted file mode 100644 index 9bd81495941..00000000000 --- a/app/javascript/packages/form-link/README.md +++ /dev/null @@ -1,22 +0,0 @@ -# `@18f/identity-form-link` - -Custom element for links which submit as a form, supporting non-GET navigation. - -## Usage - -### Custom Element - -Importing the element will register the `` custom element: - -```ts -import '@18f/identity-form-link/form-link-element'; -``` - -The custom element will implement the link submission behavior, but all markup must already exist. - -```html - - Submit - - -``` diff --git a/app/javascript/packages/form-link/form-link-element.spec.ts b/app/javascript/packages/form-link/form-link-element.spec.ts deleted file mode 100644 index d3b8bcbf350..00000000000 --- a/app/javascript/packages/form-link/form-link-element.spec.ts +++ /dev/null @@ -1,28 +0,0 @@ -import sinon from 'sinon'; -import { getByRole, fireEvent } from '@testing-library/dom'; -import './form-link-element'; - -describe('FormLinkElement', () => { - function createElement() { - document.body.innerHTML = ` - - Submit - - - `; - - return document.body.querySelector('lg-form-link')!; - } - - it('submits form on link click', () => { - const element = createElement(); - const link = getByRole(element, 'link'); - - const onSubmit = sinon.stub(); - element.form.submit = onSubmit; - const didPreventDefault = !fireEvent.click(link); - - expect(onSubmit).to.have.been.called(); - expect(didPreventDefault).to.be.true(); - }); -}); diff --git a/app/javascript/packages/form-link/form-link-element.ts b/app/javascript/packages/form-link/form-link-element.ts deleted file mode 100644 index 0e59ab55697..00000000000 --- a/app/javascript/packages/form-link/form-link-element.ts +++ /dev/null @@ -1,30 +0,0 @@ -class FormLinkElement extends HTMLElement { - connectedCallback() { - this.link.addEventListener('click', this.submit); - } - - get form(): HTMLFormElement { - return this.querySelector('form')!; - } - - get link(): HTMLAnchorElement { - return this.querySelector('a')!; - } - - submit = (event: MouseEvent) => { - event.preventDefault(); - this.form.submit(); - }; -} - -declare global { - interface HTMLElementTagNameMap { - 'lg-form-link': FormLinkElement; - } -} - -if (!customElements.get('lg-form-link')) { - customElements.define('lg-form-link', FormLinkElement); -} - -export default FormLinkElement; diff --git a/app/javascript/packages/form-link/package.json b/app/javascript/packages/form-link/package.json deleted file mode 100644 index 4308b8a71d3..00000000000 --- a/app/javascript/packages/form-link/package.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "name": "@18f/identity-form-link", - "version": "1.0.0", - "private": true -} diff --git a/spec/components/form_link_component_spec.rb b/spec/components/form_link_component_spec.rb deleted file mode 100644 index 821fc024bf5..00000000000 --- a/spec/components/form_link_component_spec.rb +++ /dev/null @@ -1,15 +0,0 @@ -require 'rails_helper' - -RSpec.describe FormLinkComponent, type: :component do - let(:options) { { href: '/', method: :post } } - let(:content) { 'Link' } - - subject(:rendered) do - render_inline described_class.new(**options).with_content(content) - end - - it 'renders custom element with link and form' do - expect(rendered).to have_css('lg-form-link a[href="/"]', text: content) - expect(rendered).to have_css('lg-form-link form.display-none[method="post"][action="/"]') - end -end