1
0
Fork 0
mirror of https://github.com/kou029w/quot.git synced 2025-03-10 08:25:19 +00:00

Compare commits

..

2 commits

Author SHA1 Message Date
3ea90fbd06 LFのみ残り続ける問題を修正 2022-08-29 12:24:40 +09:00
887eafef4d use 31bit random hex id 2022-08-29 10:39:16 +09:00
5 changed files with 16 additions and 6 deletions

View file

@ -38,7 +38,9 @@ export default () => {
<a href="/new">📄</a> <a href="/new">📄</a>
</header> </header>
{routes[pathname()] ?? ( {routes[pathname()] ?? (
<Page id={Number(pathname().slice(1)) || random()} /> <Page
id={parseInt(pathname().slice(1), 16) || random()}
/>
)} )}
</> </>
); );

View file

@ -1,4 +1,5 @@
import { import {
$createLineBreakNode,
$createParagraphNode, $createParagraphNode,
$createTextNode, $createTextNode,
$getRoot, $getRoot,
@ -25,8 +26,11 @@ export default (props: {
const root = $getRoot(); const root = $getRoot();
if (root.getFirstChild()) return; if (root.getFirstChild()) return;
const paragraphNode = $createParagraphNode(); const paragraphNode = $createParagraphNode();
const textNode = $createTextNode(props.text); const text = props.text
paragraphNode.append(textNode); .split("\n")
.flatMap((line) => [$createTextNode(line), $createLineBreakNode()])
.slice(0, -1);
paragraphNode.append(...text);
root.append(paragraphNode); root.append(paragraphNode);
}; };
onCleanup(registerPlainText(editor, initialEditorState)); onCleanup(registerPlainText(editor, initialEditorState));

View file

@ -1,5 +1,5 @@
function random(): number { function random(): number {
return window.crypto.getRandomValues(new Uint16Array(1))[0]!; return 0x7f_ff_ff_ff & window.crypto.getRandomValues(new Uint32Array(1))[0]!;
} }
export default random; export default random;

View file

@ -20,7 +20,7 @@ export default () => {
<Cards> <Cards>
<For each={pages()}> <For each={pages()}>
{(page) => ( {(page) => (
<a href={`/${page.id}`}> <a href={`/${page.id.toString(16)}`}>
<Card {...page} /> <Card {...page} />
</a> </a>
)} )}

View file

@ -44,7 +44,11 @@ export default (props: { id: number }) => {
async (id: number, content: Pages.RequestContentPage) => { async (id: number, content: Pages.RequestContentPage) => {
if (await (content.text ? updatePage(id, content) : deletePage(id))) { if (await (content.text ? updatePage(id, content) : deletePage(id))) {
unblock(); unblock();
window.history.replaceState({}, "", `/${content.text ? id : "new"}`); window.history.replaceState(
{},
"",
`/${content.text ? id.toString(16) : "new"}`
);
} }
}, },
intervalMs intervalMs