i think i finally fixed the state management awfulness
This commit is contained in:
parent
6953b49563
commit
40be540527
18 changed files with 402 additions and 417 deletions
|
@ -1,5 +1,5 @@
|
|||
<script>
|
||||
import { Client } from '../../client/client.js';
|
||||
import { client } from '../../client/client.js';
|
||||
import * as api from '../../client/api.js';
|
||||
import { get } from 'svelte/store';
|
||||
|
||||
|
@ -16,12 +16,11 @@
|
|||
export let post;
|
||||
|
||||
async function toggleBoost() {
|
||||
let client = get(Client.get());
|
||||
let data;
|
||||
if (post.boosted)
|
||||
data = await client.unboostPost(post.id);
|
||||
data = await get(client).unboostPost(post.id);
|
||||
else
|
||||
data = await client.boostPost(post.id);
|
||||
data = await get(client).boostPost(post.id);
|
||||
if (!data) {
|
||||
console.error(`Failed to boost post ${post.id}`);
|
||||
return;
|
||||
|
@ -31,12 +30,11 @@
|
|||
}
|
||||
|
||||
async function toggleFavourite() {
|
||||
let client = get(Client.get());
|
||||
let data;
|
||||
if (post.favourited)
|
||||
data = await client.unfavouritePost(post.id);
|
||||
data = await get(client).unfavouritePost(post.id);
|
||||
else
|
||||
data = await client.favouritePost(post.id);
|
||||
data = await get(client).favouritePost(post.id);
|
||||
if (!data) {
|
||||
console.error(`Failed to favourite post ${post.id}`);
|
||||
return;
|
||||
|
@ -48,13 +46,12 @@
|
|||
|
||||
async function toggleReaction(reaction) {
|
||||
if (reaction.name.includes('@')) return;
|
||||
let client = get(Client.get());
|
||||
|
||||
let data;
|
||||
if (reaction.me)
|
||||
data = await client.unreactPost(post.id, reaction.name);
|
||||
data = await get(client).unreactPost(post.id, reaction.name);
|
||||
else
|
||||
data = await client.reactPost(post.id, reaction.name);
|
||||
data = await get(client).reactPost(post.id, reaction.name);
|
||||
if (!data) {
|
||||
console.error(`Failed to favourite post ${post.id}`);
|
||||
return;
|
||||
|
|
|
@ -50,7 +50,9 @@
|
|||
|
||||
<div class="post-container">
|
||||
{#if post.reply}
|
||||
<ReplyContext post={post.reply} />
|
||||
{#await post.reply then reply}
|
||||
<ReplyContext post={reply} />
|
||||
{/await}
|
||||
{/if}
|
||||
{#if is_boost && !post_context.text}
|
||||
<BoostContext post={post_context} />
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
<script>
|
||||
import { parseText as parseEmojis, parseOne as parseEmoji } from '../../emoji.js';
|
||||
import { shorthand as short_time } from '../../time.js';
|
||||
import { get } from 'svelte/store';
|
||||
import { Client } from '../../client/client.js';
|
||||
import * as api from '../../client/api.js';
|
||||
import { goto } from '$app/navigation';
|
||||
|
||||
|
@ -20,19 +18,20 @@
|
|||
|
||||
function gotoPost() {
|
||||
if (event && event.key && event.key !== "Enter") return;
|
||||
console.log(`/post/${post.id}`);
|
||||
goto(`/post/${post.id}`);
|
||||
}
|
||||
</script>
|
||||
|
||||
{#if post.reply}
|
||||
<svelte:self post={post.reply} />
|
||||
{#await post.reply then reply}
|
||||
<svelte:self post={reply} />
|
||||
{/await}
|
||||
{/if}
|
||||
|
||||
<article
|
||||
class="post-reply"
|
||||
aria-label={aria_label}
|
||||
on:mousedown={e => {mouse_pos.left = e.pageX; mouse_pos.top = e.pageY; console.log(mouse_pos)}}
|
||||
on:mousedown={e => {mouse_pos.left = e.pageX; mouse_pos.top = e.pageY}}
|
||||
on:mouseup={e => {if (e.pageX == mouse_pos.left && e.pageY == mouse_pos.top) gotoPost()}}
|
||||
on:keydown={gotoPost}>
|
||||
<div class="line"></div>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue