Timothy J. Baek 6 місяців тому
батько
коміт
5e96922eba

+ 2 - 1
src/lib/components/common/Badge.svelte

@@ -6,7 +6,8 @@
 		info: 'bg-blue-500/20 text-blue-700 dark:text-blue-200 ',
 		success: 'bg-green-500/20 text-green-700 dark:text-green-200',
 		warning: 'bg-yellow-500/20 text-yellow-700 dark:text-yellow-200',
-		error: 'bg-red-500/20 text-red-700 dark:text-red-200'
+		error: 'bg-red-500/20 text-red-700 dark:text-red-200',
+		mute: 'bg-gray-500/20 text-gray-700 dark:text-gray-200'
 	};
 </script>
 

+ 46 - 15
src/lib/components/common/RichTextInput.svelte

@@ -186,21 +186,52 @@
 					'Mod-z': undo,
 					'Mod-y': redo,
 					Space: handleSpace,
-					Enter: chainCommands(
-						(state, dispatch, view) => {
-							if (isEmptyListItem(state)) {
-								return exitList(state, dispatch);
-							}
-							return false;
-						},
-						(state, dispatch, view) => {
-							if (isInList(state)) {
-								return splitListItem(schema.nodes.list_item)(state, dispatch);
-							}
-							return false;
-						},
-						baseKeymap.Enter
-					),
+
+					Enter: (state, dispatch, view) => {
+						if (shiftEnter) {
+							eventDispatch('submit');
+							return true;
+						}
+						return chainCommands(
+							(state, dispatch, view) => {
+								if (isEmptyListItem(state)) {
+									return exitList(state, dispatch);
+								}
+								return false;
+							},
+							(state, dispatch, view) => {
+								if (isInList(state)) {
+									return splitListItem(schema.nodes.list_item)(state, dispatch);
+								}
+								return false;
+							},
+							baseKeymap.Enter
+						)(state, dispatch, view);
+					},
+
+					'Shift-Enter': (state, dispatch, view) => {
+						if (shiftEnter) {
+							return chainCommands(
+								(state, dispatch, view) => {
+									if (isEmptyListItem(state)) {
+										return exitList(state, dispatch);
+									}
+									return false;
+								},
+								(state, dispatch, view) => {
+									if (isInList(state)) {
+										return splitListItem(schema.nodes.list_item)(state, dispatch);
+									}
+									return false;
+								},
+								baseKeymap.Enter
+							)(state, dispatch, view);
+						} else {
+							return baseKeymap.Enter(state, dispatch, view);
+						}
+						return false;
+					},
+
 					// Prevent default tab navigation and provide indent/outdent behavior inside lists:
 					Tab: (state, dispatch, view) => {
 						const { $from } = state.selection;

+ 4 - 11
src/lib/components/workspace/Knowledge.svelte

@@ -21,6 +21,7 @@
 	import Pencil from '../icons/Pencil.svelte';
 	import DeleteConfirmDialog from '../common/ConfirmDialog.svelte';
 	import ItemMenu from './Knowledge/ItemMenu.svelte';
+	import Badge from '../common/Badge.svelte';
 
 	let query = '';
 	let selectedItem = null;
@@ -167,20 +168,12 @@
 					<div class="mt-5 flex justify-between">
 						<div>
 							{#if item?.meta?.document}
-								<div
-									class="bg-gray-500/20 text-gray-700 dark:text-gray-200 rounded uppercase text-xs font-bold px-1"
-								>
-									{$i18n.t('Document')}
-								</div>
+								<Badge type="mute" content={$i18n.t('Document')} />
 							{:else}
-								<div
-									class="bg-green-500/20 text-green-700 dark:text-green-200 rounded uppercase text-xs font-bold px-1"
-								>
-									{$i18n.t('Collection')}
-								</div>
+								<Badge type="success" content={$i18n.t('Collection')} />
 							{/if}
 						</div>
-						<div class=" text-xs text-gray-500">
+						<div class=" text-xs text-gray-500 line-clamp-1">
 							{$i18n.t('Updated')}
 							{dayjs(item.updated_at * 1000).fromNow()}
 						</div>