Skip to content

Commit

Permalink
Format
Browse files Browse the repository at this point in the history
  • Loading branch information
delucis committed Jul 25, 2023
1 parent d6b8e27 commit e8a6954
Show file tree
Hide file tree
Showing 2 changed files with 74 additions and 80 deletions.
10 changes: 5 additions & 5 deletions docs/src/content/docs/es/manual-setup.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -50,11 +50,11 @@ import { defineConfig } from 'astro/config';
import starlight from '@astrojs/starlight';
export default defineConfig({
integrations: [
starlight({
title: 'Mi encantador sitio de documentos',
}),
],
integrations: [
starlight({
title: 'Mi encantador sitio de documentos',
}),
],
});
```
Expand Down
144 changes: 69 additions & 75 deletions packages/starlight/components/Search.astro
Original file line number Diff line number Diff line change
Expand Up @@ -50,81 +50,75 @@ const pagefindTranslations = {
</site-search>

<script>
class SiteSearch extends HTMLElement {
constructor() {
super();
const openBtn = this.querySelector<HTMLButtonElement>(
'button[data-open-modal]'
)!;
const closeBtn = this.querySelector<HTMLButtonElement>(
'button[data-close-modal]'
)!;
const dialog = this.querySelector('dialog')!;
const dialogFrame = this.querySelector('.dialog-frame')!;

/** Close the modal if a user clicks outside of the modal. */
const onWindowClick = (event: MouseEvent) => {
if (
document.body.contains(event.target as Node) &&
!dialogFrame.contains(event.target as Node)
)
closeModal();
};

const openModal = (event?: MouseEvent) => {
dialog.showModal();
this.querySelector('input')?.focus();
event?.stopPropagation();
window.addEventListener('click', onWindowClick);
};

const closeModal = () => {
dialog.close();
window.removeEventListener('click', onWindowClick);
};

openBtn.addEventListener('click', openModal);
openBtn.disabled = false;
closeBtn.addEventListener('click', closeModal);

// Listen for `/` and `cmd + k` keyboard shortcuts.
window.addEventListener('keydown', (e) => {
const isInput =
document.activeElement &&
['input', 'select', 'textarea'].includes(document.activeElement.tagName.toLowerCase());
if (e.metaKey === true && e.key === 'k') {
dialog.open ? closeModal() : openModal();
e.preventDefault();
} else if (e.key === '/' && !dialog.open && !isInput) {
openModal();
e.preventDefault();
}
});

let translations = {};
try {
translations = JSON.parse(this.dataset.translations || '{}');
} catch {}

window.addEventListener('DOMContentLoaded', () => {
if (import.meta.env.DEV) return;
const onIdle =
window.requestIdleCallback || ((cb) => setTimeout(cb, 1));
onIdle(async () => {
const { PagefindUI } = await import('@pagefind/default-ui');
new PagefindUI({
element: '#starlight__search',
baseUrl: import.meta.env.BASE_URL,
bundlePath:
import.meta.env.BASE_URL.replace(/\/$/, '') + '/_pagefind/',
showImages: false,
translations,
});
});
});
}
}
customElements.define('site-search', SiteSearch);
class SiteSearch extends HTMLElement {
constructor() {
super();
const openBtn = this.querySelector<HTMLButtonElement>('button[data-open-modal]')!;
const closeBtn = this.querySelector<HTMLButtonElement>('button[data-close-modal]')!;
const dialog = this.querySelector('dialog')!;
const dialogFrame = this.querySelector('.dialog-frame')!;

/** Close the modal if a user clicks outside of the modal. */
const onWindowClick = (event: MouseEvent) => {
if (
document.body.contains(event.target as Node) &&
!dialogFrame.contains(event.target as Node)
)
closeModal();
};

const openModal = (event?: MouseEvent) => {
dialog.showModal();
this.querySelector('input')?.focus();
event?.stopPropagation();
window.addEventListener('click', onWindowClick);
};

const closeModal = () => {
dialog.close();
window.removeEventListener('click', onWindowClick);
};

openBtn.addEventListener('click', openModal);
openBtn.disabled = false;
closeBtn.addEventListener('click', closeModal);

// Listen for `/` and `cmd + k` keyboard shortcuts.
window.addEventListener('keydown', (e) => {
const isInput =
document.activeElement &&
['input', 'select', 'textarea'].includes(document.activeElement.tagName.toLowerCase());
if (e.metaKey === true && e.key === 'k') {
dialog.open ? closeModal() : openModal();
e.preventDefault();
} else if (e.key === '/' && !dialog.open && !isInput) {
openModal();
e.preventDefault();
}
});

let translations = {};
try {
translations = JSON.parse(this.dataset.translations || '{}');
} catch {}

window.addEventListener('DOMContentLoaded', () => {
if (import.meta.env.DEV) return;
const onIdle = window.requestIdleCallback || ((cb) => setTimeout(cb, 1));
onIdle(async () => {
const { PagefindUI } = await import('@pagefind/default-ui');
new PagefindUI({
element: '#starlight__search',
baseUrl: import.meta.env.BASE_URL,
bundlePath: import.meta.env.BASE_URL.replace(/\/$/, '') + '/_pagefind/',
showImages: false,
translations,
});
});
});
}
}
customElements.define('site-search', SiteSearch);
</script>

<style>
Expand Down

0 comments on commit e8a6954

Please sign in to comment.