Skip to content

Commit

Permalink
fix(admin): app selector now working again
Browse files Browse the repository at this point in the history
  • Loading branch information
tristanMatthias committed Jan 16, 2019
1 parent 2383162 commit cbe23ac
Show file tree
Hide file tree
Showing 6 changed files with 119 additions and 111 deletions.
1 change: 0 additions & 1 deletion TODO.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
| [packages/core-lib/src/Renderer/index.ts](packages/core-lib/src/Renderer/index.ts#L83) | 83 | Remove dependency
| [packages/cli/src/commands/new/index.ts](packages/cli/src/commands/new/index.ts#L57) | 57 | Init database
| [packages/core-server/src/lib/App/App.ts](packages/core-server/src/lib/App/App.ts#L187) | 187 | convert to gzip serve
| [packages/admin/src/components/ui/AppSelector/AppSelector.ts](packages/admin/src/components/ui/AppSelector/AppSelector.ts#L99) | 99 | Add click event listener to the list item and not the list
| [packages/admin/src/components/ui/ResourcePage/ResourcePage.ts](packages/admin/src/components/ui/ResourcePage/ResourcePage.ts#L130) | 130 | Repair list columns on ResourceTable
| [packages/plugin-core-api/src/v1/controllers/themes/installed.ts](packages/plugin-core-api/src/v1/controllers/themes/installed.ts#L11) | 11 | Move to db call
| [packages/core-server/src/middleware/format/lib/__tests__/Formatter.test.ts](packages/core-server/src/middleware/format/lib/__tests__/Formatter.test.ts#L242) | 242 | core-server.Formatter.sendHTML
Expand Down
10 changes: 7 additions & 3 deletions packages/admin/src/components/ui/AppIcon/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,11 @@ import { customElement, html, LitElement, property } from 'lit-element/lit-eleme
import CSS from './app-icon-css';


export type Icon = string | { type: string; color: string; background: string };
export type Icon = string | {
type: string;
color: string;
background: string;
};

// @ts-ignore
@customElement('ui-app-icon')
Expand All @@ -17,11 +21,11 @@ export class AppIcon extends LitElement {
if (!this.icon) return html``;

const icon = typeof this.icon === 'string'
? html`<img src=${this.icon} class="rounded" />`
? html`<img src="${this.icon}" class="rounded" />`
: html`
<div class="rounded gradient-${this.icon.background}">
<zen-icon
type=${this.icon.type} color=${this.icon.color || 'white' } class="center" size="main"
type="${this.icon.type}" color=${this.icon.color || 'white' } class="center" size="main"
></zen-icon>
</div>
`;
Expand Down
35 changes: 20 additions & 15 deletions packages/admin/src/components/ui/AppSelector/AppSelector.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { bindAttributes } from '@origami/zen-lib/decorators';
import Fuse from 'fuse.js';
import { customElement, html, LitElement, property } from 'lit-element';
import { unsafeHTML } from 'lit-html/directives/unsafe-html';
import { repeat } from 'lit-html/directives/repeat';
// @ts-ignore
import { connect } from 'pwa-helpers/connect-mixin';
import { getSidebarItems, toggleAppSelector } from '../../../actions/App';
Expand Down Expand Up @@ -81,23 +81,23 @@ export class AppSelector extends connect(store)(LitElement) {

contents = html`
<ul class="apps" @click=${this.close}>
${_apps.map((a, i) => {
return unsafeHTML(`
<li style="animation-delay: ${(i / _apps.length) * totalAniTime + aniDelay}s">
<a href=${BASE_URI + a.path}>
<ui-app-icon .icon=${a.icon}></ui-app-icon>
<small>${a.name}</small>
</a>
</li>
`);
})}
${repeat(
_apps,
(i) => i.path,
(a, i) => html`
<li style="animation-delay: ${(i / _apps.length) * totalAniTime + aniDelay}s">
<a href=${BASE_URI + a.path}>
<ui-app-icon .icon=${a.icon} shadow></ui-app-icon>
<small>${a.name}</small>
</a>
</li>
`)
}
</ul>
`;
}


// TODO: Add click event listener to the list item and not the list
return html`
return html`
${CSS}
<zen-icon type="cross" @click=${this.close} color="grey-200" size="large"></zen-icon>
<h1>Applications</h1>
Expand All @@ -121,7 +121,12 @@ export class AppSelector extends connect(store)(LitElement) {


private _stateChanged(state: State) {
this.apps = state.App.sidebar.items;
const _apps = Object.entries(state.Apps.apps).map(([name, a]) => ({
icon: a.icon,
path: a.uriBase,
name: a.name
}));
this.apps = [..._apps, ...state.App.sidebar.items];
this.open = state.App.appSelector.open;
this._fuse = new Fuse(this.apps, {
keys: ['name']
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
import {html} from 'lit-element';
export default html`<style>:host .wrapper ul.apps .app{border-radius:var(--border-radius)}.gradient-main{background:linear-gradient(to bottom right, var(--color-main-alt, #b155ba), var(--color-main, var(--color-purple, #693a91)))}.gradient-orange{background:linear-gradient(to bottom right, #FF9B54, #C95A54)}.gradient-red{background:linear-gradient(to bottom right, #FF5554, #C92954)}.gradient-green{background:linear-gradient(to bottom right, #84D59A, #00BED0)}.gradient-blue{background:linear-gradient(to bottom right, #008CBA, #6146C8)}.gradient-white{background:linear-gradient(to bottom right, var(--color-main-soft), #cacadf)}.gradient-gold{background:linear-gradient(to bottom right, #f1e35f, #da9124)}:host .wrapper ul.apps .app zen-icon{position:absolute;left:50%;top:50%;transform:translate(-50%, -50%)}:host{position:absolute;top:0;left:0;width:100%;height:100%}:root{--gradient-main: linear-gradient(to bottom right, var(--color-main-alt, #b155ba), var(--color-main, var(--color-purple, #693a91)));--gradient-orange: linear-gradient(to bottom right, #FF9B54, #C95A54);--gradient-red: linear-gradient(to bottom right, #FF5554, #C92954);--gradient-green: linear-gradient(to bottom right, #84D59A, #00BED0);--gradient-blue: linear-gradient(to bottom right, #008CBA, #6146C8);--gradient-white: linear-gradient(to bottom right, var(--color-main-soft), #cacadf);--gradient-gold: linear-gradient(to bottom right, #f1e35f, #da9124)}@keyframes fade-up{from{opacity:0;transform:translateY(2rem)}to{opacity:1;transform:none}}:host{position:fixed;background-color:var(--color-white);text-align:center;transition:all 0.35s;z-index:-1;opacity:0;transform:translateY(1rem)}:host zen-icon[type="cross"]{position:absolute;right:var(--size-small);top:var(--size-small);animation-delay:0.1s}:host h1{display:inline-block;margin-top:calc(2.5 * var(--size-tiny))}:host h1,:host zen-icon[type="cross"],:host zen-input,:host ul.apps li,:host span.not-found{opacity:0;animation-name:fade-up;animation-fill-mode:forwards;animation-duration:0.35s;animation-timing-function:ease-out}:host span.not-found{display:inline-block;animation-duration:0.2s;color:var(--color-grey-500)}:host .wrapper{max-width:60rem;margin:auto}:host .wrapper zen-input{margin-top:var(--size-small);margin-bottom:var(--size-main);animation-delay:0.12s}:host .wrapper ul.apps{display:grid;grid-template-columns:repeat(6, 1fr);grid-gap:var(--size-small);list-style:none;padding:0}:host .wrapper ul.apps a{width:100%;display:block}:host .wrapper ul.apps .app{display:block;position:relative}:host .wrapper ul.apps .app:before{display:block;content:'';padding-bottom:100%}:host .wrapper ul.apps .app zen-icon{width:60%;height:60%;transition:all calc(var(--transition-time) / 2)}:host .wrapper ul.apps .app:hover zen-icon{transform:translate(-50%, -50%) scale(1.2)}:host-context([open]){z-index:999;opacity:1;transform:none}
export default html`<style>:host .wrapper ul.apps a small{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}:host{position:absolute;top:0;left:0;width:100%;height:100%}:host .wrapper ul.apps a{padding-top:var(--size-tiny);padding-bottom:var(--size-tiny)}:host .wrapper ul.apps a ui-app-icon{width:var(--size-main);height:var(--size-main)}@keyframes fade-up{from{opacity:0;transform:translateY(2rem)}to{opacity:1;transform:none}}:host{position:fixed;background-color:var(--color-white);text-align:center;transition:all 0.35s;z-index:-1;opacity:0;transform:translateY(1rem)}:host zen-icon[type="cross"]{position:absolute;right:var(--size-small);top:var(--size-small);animation-delay:0.1s;cursor:pointer}:host h1{display:inline-block;margin-top:calc(2.5 * var(--size-tiny))}:host h1,:host zen-icon[type="cross"],:host zen-input,:host ul.apps li,:host span.not-found{opacity:0;animation-name:fade-up;animation-fill-mode:forwards;animation-duration:0.35s;animation-timing-function:ease-out}:host span.not-found{display:inline-block;animation-duration:0.2s;color:var(--color-grey-500)}:host .wrapper{max-width:60rem;margin:auto}:host .wrapper zen-input{margin-top:var(--size-small);margin-bottom:var(--size-main);animation-delay:0.12s}:host .wrapper ul.apps{display:grid;grid-template-columns:repeat(6, 1fr);grid-gap:var(--size-small);list-style:none;padding:0}:host .wrapper ul.apps li{overflow:hidden}:host .wrapper ul.apps a{display:block;text-decoration:none}:host .wrapper ul.apps a ui-app-icon{transition:all calc(var(--transition-time) / 2)}:host .wrapper ul.apps a:hover ui-app-icon{transform:scale(1.1)}:host .wrapper ul.apps a small{display:block}:host-context([open]){z-index:999;opacity:1;transform:none}
</style>`;
176 changes: 88 additions & 88 deletions packages/admin/src/components/ui/AppSelector/app-selector.scss
Original file line number Diff line number Diff line change
@@ -1,105 +1,105 @@
@import 'zen-css/import';
@import 'zen-css/classes/gradients';

@keyframes fade-up {
from {
opacity: 0;
transform: translateY(2rem);
}
to {
opacity: 1;
transform: none;
}
from {
opacity: 0;
transform: translateY(2rem);
}

to {
opacity: 1;
transform: none;
}
}

:host {
@extend %cover;
position: fixed;
background-color: var(--color-white);
text-align: center;
transition: all 0.35s;

// Closed
z-index: -1;
@extend %cover;
position: fixed;
background-color: var(--color-white);
text-align: center;
transition: all 0.35s;

// Closed
z-index: -1;
opacity: 0;
transform: translateY(1rem);

zen-icon[type="cross"] {
position: absolute;
right: var(--size-small);
top: var(--size-small);
animation-delay: 0.1s;
cursor: pointer;
}

h1 {
display: inline-block;
margin-top: calc(2.5 * var(--size-tiny));
}

h1,
zen-icon[type="cross"],
zen-input,
ul.apps li,
span.not-found {
opacity: 0;
transform: translateY(1rem);

zen-icon[type="cross"] {
position: absolute;
right: var(--size-small);
top: var(--size-small);
animation-delay: 0.1s;
}

h1 {
display: inline-block;
margin-top: calc(2.5 * var(--size-tiny));
animation-name: fade-up;
animation-fill-mode: forwards;
animation-duration: 0.35s;
animation-timing-function: ease-out;
}

span.not-found {
display: inline-block;
animation-duration: 0.2s;
color: var(--color-grey-500);
}

.wrapper {
max-width: 60rem;
margin: auto;

zen-input {
margin-top: var(--size-small);
margin-bottom: var(--size-main);
animation-delay: 0.12s;
}

h1, zen-icon[type="cross"], zen-input, ul.apps li, span.not-found {
opacity: 0;
animation-name: fade-up;
animation-fill-mode: forwards;
animation-duration: 0.35s;
animation-timing-function: ease-out;
}

span.not-found {
display: inline-block;
animation-duration: 0.2s;
color: var(--color-grey-500);
}

.wrapper {
max-width: 60rem;
margin: auto;

zen-input {
margin-top: var(--size-small);
margin-bottom: var(--size-main);
animation-delay: 0.12s;
ul.apps {
display: grid;
grid-template-columns: repeat(6, 1fr);
grid-gap: var(--size-small);
list-style: none;
padding: 0;

li {
overflow: hidden;
}

a {
display: block;
text-decoration: none;
@extend %padding-v-tiny;

ui-app-icon {
@extend %size-main;
transition: all calc(var(--transition-time) / 2);
}

ul.apps {
display: grid;
grid-template-columns: repeat(6, 1fr);
grid-gap: var(--size-small);
list-style: none;
padding: 0;

a {
width: 100%;
display: block;
}
.app {
display: block;
position: relative;
@extend %rounded;

&:before {
display: block;
content: '';
padding-bottom: 100%;
}

zen-icon {
@extend %center;
width: 60%;
height: 60%;
transition: all calc(var(--transition-time) / 2);
}

&:hover zen-icon {
transform: translate(-50%, -50%) scale(1.2);
}
}
&:hover ui-app-icon {
transform: scale(1.1);
}
small {
display: block;
@extend %ellipsis;
}
}
}

}
}

:host-context([open]) {
z-index: 999;
opacity: 1;
transform: none;
z-index: 999;
opacity: 1;
transform: none;
}
6 changes: 3 additions & 3 deletions packages/plugin-setup/public/setup.css
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
.create-user.card .form, .create-user.card .success, .create-user.card .fail {
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0; }
left: 0;
width: 100%;
height: 100%; }

body {
--input-height: var(--size-main); }
Expand Down

0 comments on commit cbe23ac

Please sign in to comment.