Use flexbox to center images and video
This commit is contained in:
@@ -569,6 +569,7 @@ const keyboard_event = evt => {
|
|||||||
{#if view === "file"}
|
{#if view === "file"}
|
||||||
<FilePreview
|
<FilePreview
|
||||||
bind:this={file_preview}
|
bind:this={file_preview}
|
||||||
|
is_list={is_list}
|
||||||
on:download={downloader.download_file}
|
on:download={downloader.download_file}
|
||||||
on:prev={() => { if (list_navigator) { list_navigator.prev() }}}
|
on:prev={() => { if (list_navigator) { list_navigator.prev() }}}
|
||||||
on:next={() => { if (list_navigator) { list_navigator.next() }}}
|
on:next={() => { if (list_navigator) { list_navigator.next() }}}
|
||||||
|
@@ -3,7 +3,8 @@ import { createEventDispatcher, tick } from "svelte";
|
|||||||
import BandwidthUsage from "./BandwidthUsage.svelte";
|
import BandwidthUsage from "./BandwidthUsage.svelte";
|
||||||
let dispatch = createEventDispatcher()
|
let dispatch = createEventDispatcher()
|
||||||
|
|
||||||
export let file = {
|
export let is_list = false
|
||||||
|
let file = {
|
||||||
id: "",
|
id: "",
|
||||||
name: "",
|
name: "",
|
||||||
mime_type: "",
|
mime_type: "",
|
||||||
@@ -53,9 +54,11 @@ const toggle_play = () => playing ? player.pause() : player.play()
|
|||||||
<div class="container">
|
<div class="container">
|
||||||
<h1>{file.name}</h1>
|
<h1>{file.name}</h1>
|
||||||
|
|
||||||
<button on:click={() => dispatch("prev") }>
|
{#if is_list}
|
||||||
<i class="icon">skip_previous</i>
|
<button on:click={() => dispatch("prev") }>
|
||||||
</button>
|
<i class="icon">skip_previous</i>
|
||||||
|
</button>
|
||||||
|
{/if}
|
||||||
<button on:click={() => player.currentTime -= 10 }>
|
<button on:click={() => player.currentTime -= 10 }>
|
||||||
<i class="icon">replay_10</i>
|
<i class="icon">replay_10</i>
|
||||||
</button>
|
</button>
|
||||||
@@ -69,9 +72,11 @@ const toggle_play = () => playing ? player.pause() : player.play()
|
|||||||
<button on:click={() => player.currentTime += 10 }>
|
<button on:click={() => player.currentTime += 10 }>
|
||||||
<i class="icon">forward_10</i>
|
<i class="icon">forward_10</i>
|
||||||
</button>
|
</button>
|
||||||
<button on:click={() => dispatch("next") }>
|
{#if is_list}
|
||||||
<i class="icon">skip_next</i>
|
<button on:click={() => dispatch("next") }>
|
||||||
</button>
|
<i class="icon">skip_next</i>
|
||||||
|
</button>
|
||||||
|
{/if}
|
||||||
<br/><br/>
|
<br/><br/>
|
||||||
|
|
||||||
{#if file.id && !audio_reload}
|
{#if file.id && !audio_reload}
|
||||||
|
@@ -15,6 +15,7 @@ import SpeedLimit from "./SpeedLimit.svelte";
|
|||||||
|
|
||||||
let viewer
|
let viewer
|
||||||
let viewer_type = "loading"
|
let viewer_type = "loading"
|
||||||
|
export let is_list = false
|
||||||
|
|
||||||
export const set_file = async file => {
|
export const set_file = async file => {
|
||||||
if (file.id === "") {
|
if (file.id === "") {
|
||||||
@@ -54,9 +55,9 @@ export const set_file = async file => {
|
|||||||
{:else if viewer_type === "image"}
|
{:else if viewer_type === "image"}
|
||||||
<Image bind:this={viewer} on:loading></Image>
|
<Image bind:this={viewer} on:loading></Image>
|
||||||
{:else if viewer_type === "video"}
|
{:else if viewer_type === "video"}
|
||||||
<Video bind:this={viewer} on:loading on:download on:prev on:next on:reload></Video>
|
<Video bind:this={viewer} is_list={is_list} on:loading on:download on:prev on:next on:reload></Video>
|
||||||
{:else if viewer_type === "audio"}
|
{:else if viewer_type === "audio"}
|
||||||
<Audio bind:this={viewer} on:loading on:prev on:next on:reload></Audio>
|
<Audio bind:this={viewer} is_list={is_list} on:loading on:prev on:next on:reload></Audio>
|
||||||
{:else if viewer_type === "pdf"}
|
{:else if viewer_type === "pdf"}
|
||||||
<PDF bind:this={viewer}></PDF>
|
<PDF bind:this={viewer}></PDF>
|
||||||
{:else if viewer_type === "text"}
|
{:else if viewer_type === "text"}
|
||||||
|
@@ -67,10 +67,10 @@ const mouseup = (e) => {
|
|||||||
|
|
||||||
<style>
|
<style>
|
||||||
.container {
|
.container {
|
||||||
display: block;
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
text-align: center;
|
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
.container.zoom {
|
.container.zoom {
|
||||||
@@ -82,16 +82,11 @@ const mouseup = (e) => {
|
|||||||
margin: auto;
|
margin: auto;
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
max-height: 100%;
|
max-height: 100%;
|
||||||
top: 50%;
|
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
transform: translateY(-50%);
|
|
||||||
box-shadow: 0 0 4px var(--shadow_color);
|
|
||||||
}
|
}
|
||||||
.image.zoom {
|
.image.zoom {
|
||||||
max-width: none;
|
max-width: none;
|
||||||
max-height: none;
|
max-height: none;
|
||||||
top: 0;
|
|
||||||
cursor: move;
|
cursor: move;
|
||||||
transform: none;
|
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@@ -4,6 +4,7 @@ import BandwidthUsage from "./BandwidthUsage.svelte";
|
|||||||
import TextBlock from "./TextBlock.svelte";
|
import TextBlock from "./TextBlock.svelte";
|
||||||
let dispatch = createEventDispatcher()
|
let dispatch = createEventDispatcher()
|
||||||
|
|
||||||
|
export let is_list = false
|
||||||
let file = {
|
let file = {
|
||||||
id: "",
|
id: "",
|
||||||
size: 0,
|
size: 0,
|
||||||
@@ -112,9 +113,11 @@ const fullscreen = () => {
|
|||||||
|
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<div class="spacer"></div>
|
<div class="spacer"></div>
|
||||||
<button on:click={() => dispatch("prev") }>
|
{#if is_list}
|
||||||
<i class="icon">skip_previous</i>
|
<button on:click={() => dispatch("prev") }>
|
||||||
</button>
|
<i class="icon">skip_previous</i>
|
||||||
|
</button>
|
||||||
|
{/if}
|
||||||
<button on:click={() => seek_relative(-10)}>
|
<button on:click={() => seek_relative(-10)}>
|
||||||
<i class="icon">replay_10</i>
|
<i class="icon">replay_10</i>
|
||||||
</button>
|
</button>
|
||||||
@@ -128,9 +131,11 @@ const fullscreen = () => {
|
|||||||
<button on:click={() => seek_relative(10)}>
|
<button on:click={() => seek_relative(10)}>
|
||||||
<i class="icon">forward_10</i>
|
<i class="icon">forward_10</i>
|
||||||
</button>
|
</button>
|
||||||
<button on:click={() => dispatch("next") }>
|
{#if is_list}
|
||||||
<i class="icon">skip_next</i>
|
<button on:click={() => dispatch("next") }>
|
||||||
</button>
|
<i class="icon">skip_next</i>
|
||||||
|
</button>
|
||||||
|
{/if}
|
||||||
<div style="width: 16px; height: 8px;"></div>
|
<div style="width: 16px; height: 8px;"></div>
|
||||||
<button on:click={mute} class:button_red={player && player.muted}>
|
<button on:click={mute} class:button_red={player && player.muted}>
|
||||||
{#if player && player.muted}
|
{#if player && player.muted}
|
||||||
@@ -186,6 +191,8 @@ h1 {
|
|||||||
}
|
}
|
||||||
.player {
|
.player {
|
||||||
flex: 1 1 auto;
|
flex: 1 1 auto;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
@@ -209,9 +216,6 @@ h1 {
|
|||||||
margin: auto;
|
margin: auto;
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
max-height: 100%;
|
max-height: 100%;
|
||||||
top: 50%;
|
|
||||||
transform: translateY(-50%);
|
|
||||||
box-shadow: 0 0 4px var(--shadow_color);
|
|
||||||
}
|
}
|
||||||
.video_icon {
|
.video_icon {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
|
Reference in New Issue
Block a user