Skip to content

Commit

Permalink
refactor(*): update to latest firebase/stencil
Browse files Browse the repository at this point in the history
BREAKING CHANGE

This will require an update of peer dependencies
  • Loading branch information
realappie committed Nov 3, 2021
1 parent 1d5afa3 commit 492684e
Show file tree
Hide file tree
Showing 15 changed files with 1,810 additions and 1,576 deletions.
2 changes: 1 addition & 1 deletion .nvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v10.13.0
v16
2,945 changes: 1,517 additions & 1,428 deletions package-lock.json

Large diffs are not rendered by default.

10 changes: 5 additions & 5 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
"version": "0.0.0",
"author": "SpringTree B.V.",
"description": "Configuration picker for the eva configuration suite",
"main": "dist/index.js",
"module": "dist/index.mjs",
"main": "dist/index.cjs.js",
"module": "dist/index.js",
"es2015": "dist/esm/index.mjs",
"es2017": "dist/esm/index.mjs",
"types": "dist/types/index.d.ts",
Expand All @@ -24,12 +24,12 @@
"semantic-release": "semantic-release"
},
"devDependencies": {
"@stencil/core": "^1.14.0",
"@stencil/core": "2.10.0",
"semantic-release": "^15.13.1"
},
"license": "MIT",
"dependencies": {
"@stencil/sass": "^1.1.1",
"firebase": "^7.6.0"
"@stencil/sass": "^1.5.2",
"firebase": "^9.2.0"
}
}
190 changes: 99 additions & 91 deletions src/components.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,104 +4,112 @@
* This is an autogenerated file created by the Stencil compiler.
* It contains typing information for all components that exist in this project.
*/


import { HTMLStencilElement, JSXBase } from '@stencil/core/internal';
import {
BaseEnvironment,
} from './components/picker-customers/picker-customers';

import { HTMLStencilElement, JSXBase } from "@stencil/core/internal";
import { BaseEnvironment } from "./components/picker-customers/picker-customers";
export namespace Components {
interface EvaConfigPicker {}
interface EvaConfigPickerCustomer {}
interface EvaConfigPickerEndpointStatus {
'endpoint': string;
}
interface EvaConfigPickerLogin {}
interface EvaConfigPickerSpinner {
'size': number;
}
interface EvaConfigPicker {
}
interface EvaConfigPickerCustomer {
}
interface EvaConfigPickerEndpointStatus {
"endpoint": string;
}
interface EvaConfigPickerLogin {
}
interface EvaConfigPickerSpinner {
"size": number;
}
interface PickerCustomerLogo {
"customerName": string;
"logoPath": string;
}
}

declare global {


interface HTMLEvaConfigPickerElement extends Components.EvaConfigPicker, HTMLStencilElement {}
var HTMLEvaConfigPickerElement: {
prototype: HTMLEvaConfigPickerElement;
new (): HTMLEvaConfigPickerElement;
};

interface HTMLEvaConfigPickerCustomerElement extends Components.EvaConfigPickerCustomer, HTMLStencilElement {}
var HTMLEvaConfigPickerCustomerElement: {
prototype: HTMLEvaConfigPickerCustomerElement;
new (): HTMLEvaConfigPickerCustomerElement;
};

interface HTMLEvaConfigPickerEndpointStatusElement extends Components.EvaConfigPickerEndpointStatus, HTMLStencilElement {}
var HTMLEvaConfigPickerEndpointStatusElement: {
prototype: HTMLEvaConfigPickerEndpointStatusElement;
new (): HTMLEvaConfigPickerEndpointStatusElement;
};

interface HTMLEvaConfigPickerLoginElement extends Components.EvaConfigPickerLogin, HTMLStencilElement {}
var HTMLEvaConfigPickerLoginElement: {
prototype: HTMLEvaConfigPickerLoginElement;
new (): HTMLEvaConfigPickerLoginElement;
};

interface HTMLEvaConfigPickerSpinnerElement extends Components.EvaConfigPickerSpinner, HTMLStencilElement {}
var HTMLEvaConfigPickerSpinnerElement: {
prototype: HTMLEvaConfigPickerSpinnerElement;
new (): HTMLEvaConfigPickerSpinnerElement;
};
interface HTMLElementTagNameMap {
'eva-config-picker': HTMLEvaConfigPickerElement;
'eva-config-picker-customer': HTMLEvaConfigPickerCustomerElement;
'eva-config-picker-endpoint-status': HTMLEvaConfigPickerEndpointStatusElement;
'eva-config-picker-login': HTMLEvaConfigPickerLoginElement;
'eva-config-picker-spinner': HTMLEvaConfigPickerSpinnerElement;
}
interface HTMLEvaConfigPickerElement extends Components.EvaConfigPicker, HTMLStencilElement {
}
var HTMLEvaConfigPickerElement: {
prototype: HTMLEvaConfigPickerElement;
new (): HTMLEvaConfigPickerElement;
};
interface HTMLEvaConfigPickerCustomerElement extends Components.EvaConfigPickerCustomer, HTMLStencilElement {
}
var HTMLEvaConfigPickerCustomerElement: {
prototype: HTMLEvaConfigPickerCustomerElement;
new (): HTMLEvaConfigPickerCustomerElement;
};
interface HTMLEvaConfigPickerEndpointStatusElement extends Components.EvaConfigPickerEndpointStatus, HTMLStencilElement {
}
var HTMLEvaConfigPickerEndpointStatusElement: {
prototype: HTMLEvaConfigPickerEndpointStatusElement;
new (): HTMLEvaConfigPickerEndpointStatusElement;
};
interface HTMLEvaConfigPickerLoginElement extends Components.EvaConfigPickerLogin, HTMLStencilElement {
}
var HTMLEvaConfigPickerLoginElement: {
prototype: HTMLEvaConfigPickerLoginElement;
new (): HTMLEvaConfigPickerLoginElement;
};
interface HTMLEvaConfigPickerSpinnerElement extends Components.EvaConfigPickerSpinner, HTMLStencilElement {
}
var HTMLEvaConfigPickerSpinnerElement: {
prototype: HTMLEvaConfigPickerSpinnerElement;
new (): HTMLEvaConfigPickerSpinnerElement;
};
interface HTMLPickerCustomerLogoElement extends Components.PickerCustomerLogo, HTMLStencilElement {
}
var HTMLPickerCustomerLogoElement: {
prototype: HTMLPickerCustomerLogoElement;
new (): HTMLPickerCustomerLogoElement;
};
interface HTMLElementTagNameMap {
"eva-config-picker": HTMLEvaConfigPickerElement;
"eva-config-picker-customer": HTMLEvaConfigPickerCustomerElement;
"eva-config-picker-endpoint-status": HTMLEvaConfigPickerEndpointStatusElement;
"eva-config-picker-login": HTMLEvaConfigPickerLoginElement;
"eva-config-picker-spinner": HTMLEvaConfigPickerSpinnerElement;
"picker-customer-logo": HTMLPickerCustomerLogoElement;
}
}

declare namespace LocalJSX {
interface EvaConfigPicker {}
interface EvaConfigPickerCustomer {
/**
* This will emit whenever an endpoint is selected
*/
'onEndPointSelect'?: (event: CustomEvent<BaseEnvironment>) => void;
}
interface EvaConfigPickerEndpointStatus {
'endpoint'?: string;
}
interface EvaConfigPickerLogin {}
interface EvaConfigPickerSpinner {
'size'?: number;
}

interface IntrinsicElements {
'eva-config-picker': EvaConfigPicker;
'eva-config-picker-customer': EvaConfigPickerCustomer;
'eva-config-picker-endpoint-status': EvaConfigPickerEndpointStatus;
'eva-config-picker-login': EvaConfigPickerLogin;
'eva-config-picker-spinner': EvaConfigPickerSpinner;
}
interface EvaConfigPicker {
}
interface EvaConfigPickerCustomer {
/**
* This will emit whenever an endpoint is selected
*/
"onEndPointSelect"?: (event: CustomEvent<BaseEnvironment>) => void;
}
interface EvaConfigPickerEndpointStatus {
"endpoint"?: string;
}
interface EvaConfigPickerLogin {
}
interface EvaConfigPickerSpinner {
"size"?: number;
}
interface PickerCustomerLogo {
"customerName"?: string;
"logoPath"?: string;
}
interface IntrinsicElements {
"eva-config-picker": EvaConfigPicker;
"eva-config-picker-customer": EvaConfigPickerCustomer;
"eva-config-picker-endpoint-status": EvaConfigPickerEndpointStatus;
"eva-config-picker-login": EvaConfigPickerLogin;
"eva-config-picker-spinner": EvaConfigPickerSpinner;
"picker-customer-logo": PickerCustomerLogo;
}
}

export { LocalJSX as JSX };


declare module "@stencil/core" {
export namespace JSX {
interface IntrinsicElements {
'eva-config-picker': LocalJSX.EvaConfigPicker & JSXBase.HTMLAttributes<HTMLEvaConfigPickerElement>;
'eva-config-picker-customer': LocalJSX.EvaConfigPickerCustomer & JSXBase.HTMLAttributes<HTMLEvaConfigPickerCustomerElement>;
'eva-config-picker-endpoint-status': LocalJSX.EvaConfigPickerEndpointStatus & JSXBase.HTMLAttributes<HTMLEvaConfigPickerEndpointStatusElement>;
'eva-config-picker-login': LocalJSX.EvaConfigPickerLogin & JSXBase.HTMLAttributes<HTMLEvaConfigPickerLoginElement>;
'eva-config-picker-spinner': LocalJSX.EvaConfigPickerSpinner & JSXBase.HTMLAttributes<HTMLEvaConfigPickerSpinnerElement>;
export namespace JSX {
interface IntrinsicElements {
"eva-config-picker": LocalJSX.EvaConfigPicker & JSXBase.HTMLAttributes<HTMLEvaConfigPickerElement>;
"eva-config-picker-customer": LocalJSX.EvaConfigPickerCustomer & JSXBase.HTMLAttributes<HTMLEvaConfigPickerCustomerElement>;
"eva-config-picker-endpoint-status": LocalJSX.EvaConfigPickerEndpointStatus & JSXBase.HTMLAttributes<HTMLEvaConfigPickerEndpointStatusElement>;
"eva-config-picker-login": LocalJSX.EvaConfigPickerLogin & JSXBase.HTMLAttributes<HTMLEvaConfigPickerLoginElement>;
"eva-config-picker-spinner": LocalJSX.EvaConfigPickerSpinner & JSXBase.HTMLAttributes<HTMLEvaConfigPickerSpinnerElement>;
"picker-customer-logo": LocalJSX.PickerCustomerLogo & JSXBase.HTMLAttributes<HTMLPickerCustomerLogoElement>;
}
}
}
}


31 changes: 31 additions & 0 deletions src/components/picker-customer-logo/picker-customer-logo.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
:host {
display: block;
width: 75px;
height: 75px;
position: relative;
}

img, .placeholder {
position: absolute;
}

img {
width: 100%;
height: 100%;
display: block;
border-radius: var(--border-radius);
border: 1px solid var(--border-color);
background-color: var(--background-color);
z-index: 0;
}

.placeholder {
width: 100%;
height: 100%;
background-color: var(--background-color);
border: 1px solid var(--border-color);
z-index: 1;
transition: 300ms opacity;
opacity: 1;
}

58 changes: 58 additions & 0 deletions src/components/picker-customer-logo/picker-customer-logo.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
import { getDownloadURL } from '@firebase/storage';
import { Component, Host, h, Prop, State } from '@stencil/core';
import { ref } from 'firebase/storage';
import { firebaseServiceInstance } from '../../firebase';

@Component({
tag: 'picker-customer-logo',
styleUrl: 'picker-customer-logo.scss',
shadow: true,
})
export class PickerCustomerLogo {

@Prop()
logoPath: string;

@Prop()
customerName: string;

/** we will use this in the image tag */
@State()
logoSrc: string;

componentWillLoad() {
this.loadImageSrc();
}

private async loadImageSrc() {
try {
// const wait = (ms: number) => new Promise(resolve => setTimeout(resolve, ms));

// await wait(400000);
this.logoSrc = await getDownloadURL(ref(firebaseServiceInstance.storage, this.logoPath));
} catch (error) {
console.error(`[eva-picker-customer-logo] error getting customer logo for ${this.customerName}`, error);
}
}

render() {
return (
<Host>
<div class="placeholder" style={{
'opacity': this.logoSrc ? '0' : '1',
}}></div>

{this.renderImage()}
</Host>
);
}


private renderImage() {
if (this.logoSrc) {
return <img src={this.logoSrc} alt={`logo of customer: ${this.customerName}`} />
} else {
return <div></div>;
}
}
}
8 changes: 0 additions & 8 deletions src/components/picker-customers/picker-customers.scss
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,6 @@
--button-hover-background-color: var(--config-picker-button-hover-background-color, rgba(0,0,0,.12));
}

img {
width: 75px;
height: 75px;
display: block;
border-radius: var(--border-radius);
border: 1px solid var(--border-color);
}

.card {
background-color: var(--card-background-color);
width: calc(100% - (var(--padding-base) * 2));
Expand Down
Loading

0 comments on commit 492684e

Please sign in to comment.