Starting to reapply the layout and effects
This commit is contained in:
parent
574a2ed38b
commit
ebd04a0d72
@ -43,8 +43,8 @@ export function Icon(params) {
|
|||||||
const _size = (size || 1) + 1;
|
const _size = (size || 1) + 1;
|
||||||
const [boxBounds, path] = ICON_PATHS[name] || ICON_PATHS.unknown;
|
const [boxBounds, path] = ICON_PATHS[name] || ICON_PATHS.unknown;
|
||||||
|
|
||||||
delete otherProps.name;
|
delete attrs.name;
|
||||||
delete otherProps.size;
|
delete attrs.size;
|
||||||
|
|
||||||
return sv(
|
return sv(
|
||||||
`svg.icon.${name}`,
|
`svg.icon.${name}`,
|
||||||
|
|||||||
@ -7,6 +7,7 @@ import { ThumbnailTemplate } from './thumbnail.js';
|
|||||||
import { AlbumView } from './album.js';
|
import { AlbumView } from './album.js';
|
||||||
import { Dropzone } from './components/dropzone.js';
|
import { Dropzone } from './components/dropzone.js';
|
||||||
import { Overlay } from './components/overlay.js';
|
import { Overlay } from './components/overlay.js';
|
||||||
|
import { Icon } from './components/icon.js';
|
||||||
import { router, routeChanged } from '../services/router.js';
|
import { router, routeChanged } from '../services/router.js';
|
||||||
import { injectStyle, styled } from '../services/style.js';
|
import { injectStyle, styled } from '../services/style.js';
|
||||||
|
|
||||||
@ -15,7 +16,7 @@ export function GalleryView(vm) {
|
|||||||
images: {
|
images: {
|
||||||
data: ImageType.find(
|
data: ImageType.find(
|
||||||
{
|
{
|
||||||
importing: { $exists: false }
|
['sizes.thumbnail']: { $exists: true }
|
||||||
},
|
},
|
||||||
true
|
true
|
||||||
),
|
),
|
||||||
@ -31,8 +32,12 @@ export function GalleryView(vm) {
|
|||||||
let laCleanup = null;
|
let laCleanup = null;
|
||||||
const title = prop('');
|
const title = prop('');
|
||||||
|
|
||||||
function uploadImages(files) {
|
function uploadImages(evt, files) {
|
||||||
Array.from(files).forEach(ImageType.upload);
|
Array.from(files || evt.currentTarget.files).forEach(ImageType.upload);
|
||||||
|
|
||||||
|
if (evt.currentTarget) {
|
||||||
|
evt.currentTarget.value = null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function deleteImage(i) {
|
function deleteImage(i) {
|
||||||
@ -65,18 +70,49 @@ export function GalleryView(vm) {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
function renderDropzone() {
|
function renderWelcomePane() {
|
||||||
|
return [Overlay([el('h1', 'Hi')])];
|
||||||
|
}
|
||||||
|
|
||||||
|
function renderDropPane() {
|
||||||
return [
|
return [
|
||||||
el('a', { href: router.href('images') }, 'Images'),
|
Overlay([
|
||||||
el('a', { href: router.href('albums') }, 'Albums'),
|
Icon({
|
||||||
el('h1', title),
|
name: 'upload',
|
||||||
...(title() === 'Images'
|
size: 4
|
||||||
|
}),
|
||||||
|
el('h1', 'Drop pictures here to upload to your gallery')
|
||||||
|
])
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
function renderMain() {
|
||||||
|
return [
|
||||||
|
header([
|
||||||
|
el('div', { style: 'font-size: 20pt' }, 'Gallery'),
|
||||||
|
headerRight(
|
||||||
|
{
|
||||||
|
css: { visibility: /* selectMode */ true ? 'visible' : 'hidden' }
|
||||||
|
},
|
||||||
|
[
|
||||||
|
el('button', [el('label', { for: 'uploadButton' }, 'Upload')]),
|
||||||
|
el('input', {
|
||||||
|
id: 'uploadButton',
|
||||||
|
name: 'uploadButton',
|
||||||
|
type: 'file',
|
||||||
|
multiple: true,
|
||||||
|
accept: '.png,.jpg,.jpeg', // no love for gifs yet
|
||||||
|
onchange: uploadImages,
|
||||||
|
class: injectStyle({ display: 'none' })
|
||||||
|
})
|
||||||
|
]
|
||||||
|
)
|
||||||
|
]),
|
||||||
|
...(data().length
|
||||||
? data().map(i => {
|
? data().map(i => {
|
||||||
return ThumbnailTemplate(i, deleteImage, i._hash());
|
return ThumbnailTemplate(i, deleteImage, i._hash());
|
||||||
})
|
})
|
||||||
: data().map(a => {
|
: [renderWelcomePane()])
|
||||||
return vw(AlbumView, a, a._hash());
|
|
||||||
}))
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -85,24 +121,15 @@ export function GalleryView(vm) {
|
|||||||
return Overlay([el('h1', 'Loading...')]);
|
return Overlay([el('h1', 'Loading...')]);
|
||||||
}
|
}
|
||||||
|
|
||||||
return el('.gallery', { class: slate }, [
|
return el('.gallery', { class: fill }, [
|
||||||
header([
|
|
||||||
el('div', { style: 'font-size: 20pt' }, 'Gallery'),
|
|
||||||
headerRight(
|
|
||||||
{
|
|
||||||
css: { visibility: /* selectMode */ true ? 'visible' : 'hidden' }
|
|
||||||
},
|
|
||||||
[el('button', { onclick: addAlbum }, 'Add Album')]
|
|
||||||
)
|
|
||||||
]),
|
|
||||||
vw(
|
vw(
|
||||||
Dropzone,
|
Dropzone,
|
||||||
{
|
{
|
||||||
className: slate,
|
className: fill,
|
||||||
activeClassName: 'dropHover',
|
|
||||||
dropEffect: 'copy',
|
dropEffect: 'copy',
|
||||||
ondrop: uploadImages,
|
ondrop: uploadImages,
|
||||||
content: renderDropzone
|
content: renderMain,
|
||||||
|
hoverContent: renderDropPane
|
||||||
},
|
},
|
||||||
'dz'
|
'dz'
|
||||||
)
|
)
|
||||||
@ -123,9 +150,8 @@ const headerRight = styled({
|
|||||||
alignItems: 'center'
|
alignItems: 'center'
|
||||||
});
|
});
|
||||||
|
|
||||||
const slate = injectStyle({
|
const fill = injectStyle({
|
||||||
display: 'flex',
|
display: 'flex',
|
||||||
flex: 1,
|
flex: 1,
|
||||||
flexDirection: 'column'
|
flexDirection: 'column'
|
||||||
// overflow: 'hidden',
|
|
||||||
});
|
});
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user