1- import { defineComponent , h } from 'vue' ;
1+ import { defineComponent , h , type PropType } from 'vue' ;
22import { parseDom , serializeXml } from './utils.ts' ;
33import giteaDoubleChevronLeft from '../../public/assets/img/svg/gitea-double-chevron-left.svg' ;
44import giteaDoubleChevronRight from '../../public/assets/img/svg/gitea-double-chevron-right.svg' ;
@@ -197,13 +197,13 @@ export function svgParseOuterInner(name: SvgName) {
197197export const SvgIcon = defineComponent ( {
198198 name : 'SvgIcon' ,
199199 props : {
200- name : { type : String , required : true } ,
200+ name : { type : String as PropType < SvgName > , required : true } ,
201201 size : { type : Number , default : 16 } ,
202202 className : { type : String , default : '' } ,
203203 symbolId : { type : String } ,
204204 } ,
205205 render ( ) {
206- let { svgOuter, svgInnerHtml} = svgParseOuterInner ( this . name as SvgName ) ;
206+ let { svgOuter, svgInnerHtml} = svgParseOuterInner ( this . name ) ;
207207 // https://vuejs.org/guide/extras/render-function.html#creating-vnodes
208208 // the `^` is used for attr, set SVG attributes like 'width', `aria-hidden`, `viewBox`, etc
209209 const attrs = { } ;
@@ -215,7 +215,7 @@ export const SvgIcon = defineComponent({
215215 attrs [ `^height` ] = this . size ;
216216
217217 // make the <SvgIcon class="foo" class-name="bar"> classes work together
218- const classes = [ ] ;
218+ const classes : Array < string > = [ ] ;
219219 for ( const cls of svgOuter . classList ) {
220220 classes . push ( cls ) ;
221221 }
0 commit comments