{{!
  Copyright (c) HashiCorp, Inc.
  SPDX-License-Identifier: MPL-2.0
}}

<Route
  @name={{routeName}}
as |route|>
  <DataLoader
  @src={{uri 'settings://consul:client'}}
  as |loader|>

    <BlockSlot @name="error">
      <AppError
        @error={{loader.error}}
        @login={{route.model.app.login.open}}
      />
    </BlockSlot>

    <BlockSlot @name="loaded">
{{#let
  (or loader.data (hash
      blocking=true
    )
  )
as |item|}}
  <AppView>
    <BlockSlot @name="header">
      <h1>
        <route.Title @title="Settings" />
      </h1>
    </BlockSlot>
    <BlockSlot @name="content">
      <Hds::Alert @type="inline" class='mb-3 mt-2' as |A|>
        <A.Title>Local Storage</A.Title>
        <A.Description>These settings are immediately saved to local storage and persisted through browser usage.</A.Description>
      </Hds::Alert>
      <form>
      {{#if (not (env 'CONSUL_UI_DISABLE_REALTIME'))}}
      <Disclosure as |disclosure|>
        <disclosure.Details>
          <DataSink
            @data={{item}}
            @sink='settings://consul:client'
            @onchange={{action (fn disclosure.close)}}
          />
        </disclosure.Details>
        <fieldset data-test-blocking-queries>
          <h2>Blocking Queries</h2>
          <p>Keep catalog info up-to-date without refreshing the page. Any changes made to services, nodes and intentions would be reflected in real time.</p>
          <div class="type-toggle">
            <label>
              <input
                {{on 'change' (queue
                  (set item 'blocking' (not item.blocking))
                  (fn disclosure.open)
                )}}
                type="checkbox"
                name="client[blocking]"
                checked={{if item.blocking 'checked'}}
              />
              <span>{{if item.blocking 'On' 'Off'}}</span>
            </label>
          </div>
        </fieldset>
      </Disclosure>
      {{/if}}
      </form>
    </BlockSlot>
  </AppView>
{{/let}}
  </BlockSlot>
</DataLoader>
</Route>
