refactor(frontent): move components and ts to lib folder

This commit is contained in:
2025-12-29 18:38:20 +01:00
parent 54b9e1fc78
commit abf227d15d
30 changed files with 41 additions and 40 deletions
@@ -11,6 +11,7 @@
TextAlignStart, TextAlignStart,
TrafficCone TrafficCone
} from 'lucide-svelte'; } from 'lucide-svelte';
import { onMount } from 'svelte';
import Button from './Button.svelte'; import Button from './Button.svelte';
import PopUp from './PopUp.svelte'; import PopUp from './PopUp.svelte';
import type { PopupContent } from '../ts/types'; import type { PopupContent } from '../ts/types';
@@ -4,26 +4,26 @@
current_height, current_height,
get_selectable_color_classes, get_selectable_color_classes,
get_shifted_color get_shifted_color
} from '../ts/stores/ui_behavior'; } from '$lib/ts/stores/ui_behavior';
import Button from './Button.svelte'; import Button from './Button.svelte';
import { supported_file_type_icon, type Inode, get_file_primary_key } from '../ts/types'; import { supported_file_type_icon, type Inode, get_file_primary_key } from '$lib/ts/types';
import { import {
is_selected, is_selected,
select, select,
selected_display_ids, selected_display_ids,
selected_file_ids selected_file_ids
} from '../ts/stores/select'; } from '$lib/ts/stores/select';
import { import {
change_file_path, change_file_path,
current_file_path, current_file_path,
get_missing_colliding_display_ids get_missing_colliding_display_ids
} from '../ts/stores/files'; } from '$lib/ts/stores/files';
import RefreshPlay from './RefreshPlay.svelte'; import RefreshPlay from './RefreshPlay.svelte';
import { get_file_size_display_string, get_file_type } from '../ts/utils'; import { get_file_size_display_string, get_file_type } from '$lib/ts/utils';
import { open_file } from '../ts/api_handler'; import { open_file } from '$lib/ts/api_handler';
import { run_on_all_selected_displays } from '../ts/stores/displays'; import { run_on_all_selected_displays } from '$lib/ts/stores/displays';
import { get_thumbnail_url } from '../ts/stores/thumbnails'; import { get_thumbnail_url } from '$lib/ts/stores/thumbnails';
import { liveQuery } from 'dexie'; import { liveQuery } from 'dexie';
let { file, not_interactable = false }: { file: Inode; not_interactable?: boolean } = $props(); let { file, not_interactable = false }: { file: Inode; not_interactable?: boolean } = $props();
@@ -1,10 +1,10 @@
<script lang="ts"> <script lang="ts">
import { flip } from 'svelte/animate'; import { flip } from 'svelte/animate';
import { get_selectable_color_classes } from '../ts/stores/ui_behavior'; import { get_selectable_color_classes } from '$lib/ts/stores/ui_behavior';
import key_map_json from './../../../../shared/keys.json'; import key_map_json from './../../../../../shared/keys.json';
import { fade } from 'svelte/transition'; import { fade } from 'svelte/transition';
import { run_on_all_selected_displays } from '../ts/stores/displays'; import { run_on_all_selected_displays } from '$lib/ts/stores/displays';
import { send_keyboard_input } from '../ts/api_handler'; import { send_keyboard_input } from '$lib/ts/api_handler';
const key_map: Record<string, string> = key_map_json as Record<string, string>; const key_map: Record<string, string> = key_map_json as Record<string, string>;
@@ -2,7 +2,7 @@
import { fade } from 'svelte/transition'; import { fade } from 'svelte/transition';
import Button from './Button.svelte'; import Button from './Button.svelte';
import { X } from 'lucide-svelte'; import { X } from 'lucide-svelte';
import { notifications } from '../ts/stores/notification'; import { notifications } from '$lib/ts/stores/notification';
</script> </script>
<div <div
@@ -1,6 +1,6 @@
<script lang="ts"> <script lang="ts">
import { type DisplayStatus } from '../ts/types'; import { type DisplayStatus } from '$lib/ts/types';
import { display_status_to_info } from '../ts/utils'; import { display_status_to_info } from '$lib/ts/utils';
let { let {
selected, selected,
@@ -2,8 +2,8 @@
import { ChevronRight, House } from 'lucide-svelte'; import { ChevronRight, House } from 'lucide-svelte';
import Button from './Button.svelte'; import Button from './Button.svelte';
import { onDestroy, onMount } from 'svelte'; import { onDestroy, onMount } from 'svelte';
import type { MenuOption } from '../ts/types'; import type { MenuOption } from '$lib/ts/types';
import { change_file_path, current_file_path } from '../ts/stores/files'; import { change_file_path, current_file_path } from '$lib/ts/stores/files';
import { flip } from 'svelte/animate'; import { flip } from 'svelte/animate';
import { cubicOut } from 'svelte/easing'; import { cubicOut } from 'svelte/easing';
@@ -1,8 +1,9 @@
<script lang="ts"> <script lang="ts">
import { X } from 'lucide-svelte'; import { X } from 'lucide-svelte';
import Button from './Button.svelte'; import Button from './Button.svelte';
import type { PopupContent } from '../ts/types'; import type { PopupContent } from '$lib/ts/types';
import { fade } from 'svelte/transition'; import { fade } from 'svelte/transition';
import { onMount } from 'svelte';
let { let {
content, content,
@@ -1,8 +1,8 @@
<script lang="ts"> <script lang="ts">
import { fade } from 'svelte/transition'; import { fade } from 'svelte/transition';
import { get_shifted_color } from '../ts/stores/ui_behavior'; import { get_shifted_color } from '$lib/ts/stores/ui_behavior';
import { onMount } from 'svelte'; import { onMount } from 'svelte';
import { selected_display_ids } from '../ts/stores/select'; import { selected_display_ids } from '$lib/ts/stores/select';
let { let {
current_value = $bindable(), current_value = $bindable(),
@@ -13,9 +13,9 @@
Strikethrough Strikethrough
} from 'lucide-svelte'; } from 'lucide-svelte';
import Button from './Button.svelte'; import Button from './Button.svelte';
import { run_on_all_selected_displays } from '../ts/stores/displays'; import { run_on_all_selected_displays } from '$lib/ts/stores/displays';
import { show_html } from '../ts/api_handler'; import { show_html } from '$lib/ts/api_handler';
import { get_selectable_color_classes } from '../ts/stores/ui_behavior'; import { get_selectable_color_classes } from '$lib/ts/stores/ui_behavior';
import { TextStyle } from '@tiptap/extension-text-style'; import { TextStyle } from '@tiptap/extension-text-style';
import { Color } from '@tiptap/extension-text-style'; import { Color } from '@tiptap/extension-text-style';
import Highlight from '@tiptap/extension-highlight'; import Highlight from '@tiptap/extension-highlight';
@@ -1,5 +1,5 @@
import type { DisplayStatus, Inode, SupportedFileType } from './types'; import type { DisplayStatus, Inode, SupportedFileType } from './types';
import supported_file_types_json from './../../../../shared/supported_file_types.json'; import supported_file_types_json from './../../../../../shared/supported_file_types.json';
const supported_file_types: Record<string, SupportedFileType> = supported_file_types_json as Record< const supported_file_types: Record<string, SupportedFileType> = supported_file_types_json as Record<
string, string,
+1 -1
View File
@@ -1,6 +1,6 @@
<script lang="ts"> <script lang="ts">
import '../app.css'; import '../app.css';
import Notification from '../components/Notification.svelte'; import Notification from '$lib/components/Notification.svelte';
let { children } = $props(); let { children } = $props();
</script> </script>
+13 -14
View File
@@ -1,27 +1,26 @@
<script lang="ts"> <script lang="ts">
import { Monitor, Plus, Radio, Settings, Trash2, X } from 'lucide-svelte'; import { Monitor, Plus, Radio, Settings, Trash2, X } from 'lucide-svelte';
import Button from '../components/Button.svelte'; import Button from '$lib/components/Button.svelte';
import FileView from '../components/FileView.svelte'; import FileView from '$lib/components/FileView.svelte';
import ControlView from '../components/ControlView.svelte'; import ControlView from '$lib/components/ControlView.svelte';
import DisplayView from '../components/DisplayView.svelte'; import DisplayView from '$lib/components/DisplayView.svelte';
import SplashScreen from './../../../../shared/splash_screen.html?raw'; import PopUp from '$lib/components/PopUp.svelte';
import PopUp from '../components/PopUp.svelte'; import { type PopupContent } from '$lib/ts/types';
import { type PopupContent } from '../ts/types'; import TextInput from '$lib/components/TextInput.svelte';
import TextInput from '../components/TextInput.svelte';
import { import {
add_display, add_display,
edit_display_data, edit_display_data,
get_display_by_id, get_display_by_id,
is_display_name_taken, is_display_name_taken,
remove_display remove_display
} from '../ts/stores/displays'; } from '$lib/ts/stores/displays';
import { text } from '@sveltejs/kit'; import { text } from '@sveltejs/kit';
import { notifications } from '../ts/stores/notification'; import { notifications } from '$lib/ts/stores/notification';
import { ping_ip } from '../ts/api_handler'; import { ping_ip } from '$lib/ts/api_handler';
import { onMount } from 'svelte'; import { onMount } from 'svelte';
import { on_start } from '../ts/main'; import { on_start } from '$lib/ts/main';
import { display_status_to_info } from '../ts/utils'; import { display_status_to_info } from '$lib/ts/utils';
import HighlightedText from '../components/HighlightedText.svelte'; import HighlightedText from '$lib/components/HighlightedText.svelte';
const ip_regex = const ip_regex =
/^(?:(?:10|127)\.(?:25[0-5]|2[0-4]\d|1?\d?\d)\.(?:25[0-5]|2[0-4]\d|1?\d?\d)\.(?:25[0-5]|2[0-4]\d|1?\d?\d)|192\.168\.(?:25[0-5]|2[0-4]\d|1?\d?\d)\.(?:25[0-5]|2[0-4]\d|1?\d?\d)|172\.(?:1[6-9]|2\d|3[0-1])\.(?:25[0-5]|2[0-4]\d|1?\d?\d)\.(?:25[0-5]|2[0-4]\d|1?\d?\d))$/; /^(?:(?:10|127)\.(?:25[0-5]|2[0-4]\d|1?\d?\d)\.(?:25[0-5]|2[0-4]\d|1?\d?\d)\.(?:25[0-5]|2[0-4]\d|1?\d?\d)|192\.168\.(?:25[0-5]|2[0-4]\d|1?\d?\d)\.(?:25[0-5]|2[0-4]\d|1?\d?\d)|172\.(?:1[6-9]|2\d|3[0-1])\.(?:25[0-5]|2[0-4]\d|1?\d?\d)\.(?:25[0-5]|2[0-4]\d|1?\d?\d))$/;