diff --git a/resources/components/favourites/save.html b/resources/components/favourites/save.html
index 3f223e3..544dc83 100644
--- a/resources/components/favourites/save.html
+++ b/resources/components/favourites/save.html
@@ -6,7 +6,7 @@
:class="{ 'is-invalid': errors.name.length > 0 }" id="favourite_add_name"
v-model="name" v-autofocus/>
{{ error }}
diff --git a/resources/components/ui/icon.html b/resources/components/ui/icon.html
index 4fd3d67..f9f2d25 100644
--- a/resources/components/ui/icon.html
+++ b/resources/components/ui/icon.html
@@ -1,4 +1,4 @@
-
+
diff --git a/resources/ts/components/ui/icon.ts b/resources/ts/components/ui/icon.ts
index 0fe37c1..419db53 100644
--- a/resources/ts/components/ui/icon.ts
+++ b/resources/ts/components/ui/icon.ts
@@ -15,7 +15,7 @@ import {
faInfoCircle,
faMapMarkerAlt,
faMoon,
- faQuestionCircle,
+ faQuestionCircle, faQuestionSquare,
faSearch,
faSign,
faStar,
@@ -60,6 +60,7 @@ const messageTypeIcons: Dictionary
= {
const definitions: Dictionary = {
'favourite': simple(faStar),
+ 'unknown': simple(faQuestionSquare),
'add': simple(faCheck),
'add-all': simple(faCheckDouble),
'remove-stop': simple(faTimes),
@@ -113,14 +114,20 @@ export class UiIcon extends Vue {
validator: value => typeof value === "object" || Object.keys(definitions).includes(value),
required: true,
})
- icon: keyof typeof definitions;
+ icon: string | IconDefinition;
- get definition() {
- return {...(typeof this.icon === "string" ? definitions[this.icon] : { icon: this.icon }), ...this.$attrs};
+ get definition(): Icon {
+ return typeof this.icon === "string"
+ ? definitions[this.icon] || definitions['unknown']
+ : { icon: this.icon as IconDefinition, type: "simple" };
+ }
+
+ get attrs() {
+ return { ...this.definition, ...this.$attrs };
}
get type() {
- return definitions[this.icon].type;
+ return this.definition.type;
}
}