chore: update publish workflow to trigger on main branch and refine slug generation in course settings
This commit is contained in:
@@ -3,12 +3,15 @@ name: Publish @classroomio/mcp to NPM
|
|||||||
on:
|
on:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
pull_request:
|
pull_request:
|
||||||
branches:
|
|
||||||
- feat/release-v2
|
|
||||||
paths:
|
paths:
|
||||||
- ".github/workflows/publish-mcp.yml"
|
|
||||||
- "packages/mcp/**"
|
- "packages/mcp/**"
|
||||||
|
|
||||||
|
push:
|
||||||
|
paths:
|
||||||
|
- "packages/mcp/**"
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
publish:
|
publish:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
import { t } from '$lib/utils/functions/translations';
|
import { t } from '$lib/utils/functions/translations';
|
||||||
import { isObject } from '$lib/utils/functions/isObject';
|
import { isObject } from '$lib/utils/functions/isObject';
|
||||||
import { snackbar } from '$features/ui/snackbar/store';
|
import { snackbar } from '$features/ui/snackbar/store';
|
||||||
import generateSlug from '$lib/utils/functions/generateSlug';
|
import { generateSlug } from '@cio/utils/functions';
|
||||||
import { DeleteModal } from '$features/ui';
|
import { DeleteModal } from '$features/ui';
|
||||||
import { courseApi } from '$features/course/api';
|
import { courseApi } from '$features/course/api';
|
||||||
import { tagApi } from '$features/tag/api';
|
import { tagApi } from '$features/tag/api';
|
||||||
@@ -190,7 +190,7 @@
|
|||||||
|
|
||||||
const generateNewCourseLink = () => {
|
const generateNewCourseLink = () => {
|
||||||
if (!courseApi.course) return;
|
if (!courseApi.course) return;
|
||||||
courseApi.course.slug = generateSlug(courseApi.course.title);
|
courseApi.course.slug = generateSlug(courseApi.course.title, { appendTimestamp: true });
|
||||||
hasUnsavedChanges = true;
|
hasUnsavedChanges = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -31,7 +31,7 @@
|
|||||||
import InstructorForm from './instructor-form.svelte';
|
import InstructorForm from './instructor-form.svelte';
|
||||||
import { Button } from '@cio/ui/base/button';
|
import { Button } from '@cio/ui/base/button';
|
||||||
import { courseApi } from '$features/course/api';
|
import { courseApi } from '$features/course/api';
|
||||||
import generateSlug from '$lib/utils/functions/generateSlug';
|
import { generateSlug } from '@cio/utils/functions';
|
||||||
import * as Sidebar from '@cio/ui/base/sidebar';
|
import * as Sidebar from '@cio/ui/base/sidebar';
|
||||||
import { useSidebar } from '@cio/ui/base/sidebar';
|
import { useSidebar } from '@cio/ui/base/sidebar';
|
||||||
|
|
||||||
@@ -147,7 +147,7 @@
|
|||||||
|
|
||||||
async function handleSave() {
|
async function handleSave() {
|
||||||
loading = true;
|
loading = true;
|
||||||
course.slug = course.slug || generateSlug(course.title);
|
course.slug = course.slug || generateSlug(course.title, { appendTimestamp: true });
|
||||||
|
|
||||||
console.log('course', course);
|
console.log('course', course);
|
||||||
await courseApi.update(courseId, {
|
await courseApi.update(courseId, {
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
let { data } = $props();
|
let { data } = $props();
|
||||||
|
|
||||||
let userCourseAnalytics: UserCourseAnalytics | undefined = $state(data.userCourseAnalytics ?? undefined);
|
let userCourseAnalytics: UserCourseAnalytics | undefined = $derived(data.userCourseAnalytics ?? undefined);
|
||||||
|
|
||||||
function getPercentage(a: number, b: number): number {
|
function getPercentage(a: number, b: number): number {
|
||||||
if (b === 0) {
|
if (b === 0) {
|
||||||
|
|||||||
@@ -32,7 +32,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
let { data } = $props();
|
let { data } = $props();
|
||||||
const { quizId } = data;
|
const quizId = $derived(data.quizId);
|
||||||
|
|
||||||
// Questionnaire State
|
// Questionnaire State
|
||||||
let currentQuestion: QuizQuestion = $state(
|
let currentQuestion: QuizQuestion = $state(
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
config: ChartConfig;
|
config: ChartConfig;
|
||||||
} = $props();
|
} = $props();
|
||||||
|
|
||||||
const chartId = `chart-${id || uid.replace(/:/g, '')}`;
|
const chartId = $derived(`chart-${id || uid.replace(/:/g, '')}`);
|
||||||
|
|
||||||
setChartContext({
|
setChartContext({
|
||||||
get config() {
|
get config() {
|
||||||
|
|||||||
@@ -22,10 +22,7 @@
|
|||||||
...rest
|
...rest
|
||||||
}: CopyButtonProps = $props();
|
}: CopyButtonProps = $props();
|
||||||
|
|
||||||
// this way if the user passes text then the button will be the default size
|
const resolvedSize = $derived(size === 'icon' && children ? 'default' : size);
|
||||||
if (size === 'icon' && children) {
|
|
||||||
size = 'default';
|
|
||||||
}
|
|
||||||
|
|
||||||
const clipboard = new UseClipboard();
|
const clipboard = new UseClipboard();
|
||||||
</script>
|
</script>
|
||||||
@@ -34,7 +31,7 @@
|
|||||||
{...rest}
|
{...rest}
|
||||||
bind:ref
|
bind:ref
|
||||||
{variant}
|
{variant}
|
||||||
{size}
|
size={resolvedSize}
|
||||||
{tabindex}
|
{tabindex}
|
||||||
class={cn('ui:flex ui:items-center ui:gap-2', className)}
|
class={cn('ui:flex ui:items-center ui:gap-2', className)}
|
||||||
type="button"
|
type="button"
|
||||||
|
|||||||
Reference in New Issue
Block a user