Starting to reapply the layout and effects

This commit is contained in:
Timothy Farrell 2017-11-27 23:01:37 -06:00
parent 574a2ed38b
commit ebd04a0d72
2 changed files with 54 additions and 28 deletions

View File

@ -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}`,

View File

@ -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',
}); });