fix: ui prefix breaking sidebar

This commit is contained in:
Rotimi Best
2026-06-12 01:03:17 +01:00
parent 6c918329cb
commit 8fd80e9dc5
12 changed files with 161 additions and 28 deletions
@@ -173,6 +173,7 @@ export class NewsfeedApi extends BaseApiWithErrors {
ZNewsfeedUpdate.safeParse({ ...fields, content: '' }).error!,
'newsfeed'
);
snackbar.error(this.errors.content ?? 'Failed to update post');
return;
}
@@ -1,5 +1,5 @@
<script lang="ts">
import { onMount } from 'svelte';
import { onMount, tick } from 'svelte';
import type { Feed } from '$features/course/utils/types';
import { newsfeedApi } from '$features/course/api';
@@ -50,9 +50,10 @@
let isDeleteFeedModal = $state(false);
const openEditFeed = () => {
const openEditFeed = async () => {
editFeed = feed;
edit = true;
await tick();
newsfeedApi.openNewFeedModal();
};
@@ -17,21 +17,19 @@
let { courseId = '', edit = $bindable(false), editFeed = $bindable() }: Props = $props();
let isLoading = $state(false);
let errors: Record<string, string> = $state({
newPost: ''
});
let newPost = $state('');
$effect(() => {
if (!newsfeedApi.isNewFeedModalOpen) {
newPost = '';
return;
}
if (edit && editFeed) {
newPost = editFeed.content || '';
return;
}
newPost = '';
});
const onPost = async () => {
@@ -43,6 +41,10 @@
if (newsfeedApi.success) {
resetEditor();
} else if (newsfeedApi.errors.content) {
snackbar.error(newsfeedApi.errors.content);
} else {
snackbar.error('snackbar.newsfeed.error.editing');
}
} else {
await newsfeedApi.create(courseId, {
@@ -101,8 +103,8 @@
placeholder={$t('course.navItem.news_feed.heading_button.placeholder')}
/>
{/key}
{#if errors.newPost}
<p class="text-sm text-red-500">{errors.newPost}</p>
{#if newsfeedApi.errors.content}
<p class="ui:text-destructive text-sm">{newsfeedApi.errors.content}</p>
{/if}
</section>
<Dialog.Footer>
@@ -1,5 +1,5 @@
<script lang="ts">
import { onMount } from 'svelte';
import { onMount, tick } from 'svelte';
import type { ProgramNewsfeedItem } from '$features/program/utils/types';
import { programNewsfeedApi, type ProgramNewsfeedCommentsByFeedId } from '$features/program/api';
import {
@@ -59,10 +59,11 @@
const reactionCounts = $derived(getNewsfeedReactionCounts(feed.reaction));
const selectedReactionType = $derived(getSelectedNewsfeedReactionType(feed.reaction, reactionAuthorId));
const openEditFeed = () => {
programNewsfeedApi.openNewFeedModal();
edit = true;
const openEditFeed = async () => {
editFeed = feed;
edit = true;
await tick();
programNewsfeedApi.openNewFeedModal();
};
const handleReact = (reactionType: string) => addNewReaction(reactionType, feed.id, reactionAuthorId);
@@ -21,13 +21,15 @@
$effect(() => {
if (!programNewsfeedApi.isNewFeedModalOpen) {
newPost = '';
return;
}
if (edit && editFeed) {
newPost = editFeed.content || '';
return;
}
newPost = '';
});
const resetEditor = () => {