From 5de95942725d10d51d9ae9be5568d2efdb9c34e8 Mon Sep 17 00:00:00 2001 From: SimonLab Date: Fri, 14 Feb 2020 15:16:10 +0100 Subject: [PATCH] add asset module, #4 --- assets/images/dwyl.png | Bin 0 -> 7170 bytes elm.js | 84 +++++++++++++++++++++++++++++++++++++---- index.html | 1 + src/Asset.elm | 23 +++++++++++ src/Main.elm | 14 ++++--- tests/AssetTests.elm | 18 +++++++++ 6 files changed, 128 insertions(+), 12 deletions(-) create mode 100644 assets/images/dwyl.png create mode 100644 src/Asset.elm create mode 100644 tests/AssetTests.elm diff --git a/assets/images/dwyl.png b/assets/images/dwyl.png new file mode 100644 index 0000000000000000000000000000000000000000..8e8e0d949a74754916723f7490656d949dbc6c69 GIT binary patch literal 7170 zcmV+d9R1^oP)W0u~#>fSSdoa(mH=}xM;&b_y~>b%dx(?HVa-uvC( z@1Es53pgAOhr{7;lpPZH4cMZgxv}qgs(_t<@xWx@LqKKbXC0u2ibYbX)u|v@TcNxy zX&tl%TCcCKtXh`}g3TLyx_gpJ>882!;(pW}#=+NGY7&V`Pt@qnbZVl&I1!l=XkG7# zOz^dyvb{J6bO7&b=mC}ktAX{vW}q7=`Z(muh%`V(>>e-{7zNA#_5t<>_5`K_^_f4b z%=bA3d=0%oyC1dhW9zCQC$ zbp+270PPszuLE8Jo~cVF|L@Sr(^~$#VQueEkD3$e4V?MtLj>rA9|Y4i9Gr>8!2%OR zWOShQC_sfA2Mu&#OtBGo4S2#6dDhpu1?U+mW+-X{WJI69eBqA=K8^XhP0sxPVj%5_ ztg7@9e@ZCT+?h^2+3Wi)N+fMd1n2!>0lSYL<1JagX1dn;uuL2d!+Z>iCJvaU(h`A% zRf)tC9jVlEn{fz(qBB57^Z;W74h7ECa1_P_VSm{QBGYtg0TuywW138z!xca#7B#@^ z3gw-b3jAZWY2Fo!=!YT@Xz`SKy3+F=Oo)2+h^f;zKD_*0ip>l~V}L&4YnWb>NSxm7 z`}4HcvoHb}iEIL%1?~eL2Q~mZ6hL1bJdtsgUgDU}bn0B-2w+Uy4>TM^q#Lc5YH0LC zJ^0O!AJ+2Hnw9#}nX}`*HFJM)-$2$Ef2_bc8ZHC&rpUkcd5{AB54Zzp!gLt7F+z46 zfCk`VfdjSayp{ri5_u;f>Nf%U&IeCCz2(IrO5mfw^}tD#PRGt+mlUu7 z_%`q=5oFmzH9$uEwZK)F(Vcj^{Em@As}lLisAR=|D3SJ`AA53W7YfY)=RWa!(t)1T z?WeyPXni4O8iT`;6Jq9K-L2sUU{zQ(fpr694R7uT+ya~!#&sNJ!y?Q`;j3VOxYTO0 zDNFpv0Kde{S#jcb6v8nga&Lv_o!E5a)!7=ef;Dkw-Pp;%k8$mNhh0`Al)B>lz4vc= zZNs|Yx&sfhQm7RJG&DD&A(0UItgrRWIPp6|K#6P+xS`um-=0*Sm06|*8z5`S^5vM} zt5IO$aVocJB#GYa#ey?jb-op>8kE{i=xkJ<$4X;7!bel)nh9R3g1qiNvP%RLURt&>HmE%Brf(y*;Bc zb8=tC4n;e85;g808-O@h?>z^c1GI!{fULPaKL9R?;X(TrmHbDgm-xf|C!D%z(Te39JAKzkZz8L9 znC^)>#n-{vM7xNk*Asaa_U-i+Czw+Fw6*^Z}$3<2xc_8pz%yuq?)&>FaN8sAb z&)9aN%QFrD2LN9IPR9(VM#1yIXMhz}43M=A;Z2yA5CyH7>-_?VWvyr-WMVcE_?p1Q z+H6fY96ErXipcjBvf9@{(S7xI6bFs2u26~d(t-aC9o=yGe*<48hfMJf4RG2c50X^s zs2)GvsLdE~m}tyb?wZWc5xWU%LvtflUZMiwjP7*$2F#wNIip10*P0sw^sfbaM{*o6 zIy)58cRZBvhfOyEX9JJH_M3{^t)5RY4zBO<(_f1~{9vX~pM|N$My&Y31ijl&_jae# z_hp`GQ69g($P@Xe-_1GW7rTraJz~Y*7YEFT?fFa`ei^}K>jk-Pr;5snqbs(b&>zx? z4b6=tM4{1F_*(yf@O$)4m}QeINAe3FjLcVX3h-~3&f!pRC9Op62EHY*GN0kRkw9kF z@KjG^zSjC=9b*1O%tl<-EMB+z*2`wj=Gu=PI_TdU@&*!0QJL`e3$*?h!WI7(;5(R+ zladoZ^nV3cVcMmaW42l!$oom9uB`GBU#?JI$%(%&4m0XTubfz2bCDAHH_Xh=P{^3; zibE#te9)`w*ADsj2CV@yotLC1>h?hE3qp*E)v2w;PD67eo(O^2^Ym5?M`!-%In1)Z zm!bHEH^Ybn5lx{_D0R=llcrwWp6czn>ELZAE(}=%2y#%M^(kT9m_VvRdEZUz;5N!Y z{9uIr+c{@aok%XNP9)E(^t`(;yGWlynTS8@8Pi?q^!%h!H;PDah?hI%gSO2_zrSVk zpntec4Upx|JAm`UxFa#sk8i8+ylZ=XKd;nvsgQ|tRpvjt%R%@9x$LQhRC->`^0v+2 z$uza|J;5d?5=t!yv_3n~x?^CRw=uxnhwmq;)S-daO@uV^U+Z;ugnXik zqqw=?$!4_HV>b14-|3sJGQ*$^I2CwupaHgO0yQ)@a^%i4#1r`p;SGDfUg4>)t?BG^ z;&*V@(R10*-L=Wr`Z~-}OJOhy_#BWJxU0lAeSl|IwoFL{L0HoYw*cSjN~d4E z=KO@RWw{brQj93>>{*q}ZUzmk0X~G8!DyS#Kz zrc*0AQmMjAbCfKe$Z8S!zGPOmS>`Cr+U9-~Y&Ctg0b>H&+)DuqmmTFn)7*KCudZR| z+PcR?TYuQ3 z2b1dWa9@8%u4J^*ftiiaVY6%vb-liSsLuSi${PJS-1dWr$YKe>#g4M!Dc~jBh5A|_ z8fabF(A?PH2bhQ%|F=q|=RL5tt8+uBA##*5ZNP(=1vNJLD4ASWp8@v5^6Gsh(i#MM z;k3F@Zsf<2H(8o_3|MZt_{o^Xr3t)BknEabX6>QNmCJ}tmf>`v002uxMLu4HA#Y!GPu$Cmaj z-M4+}gy=%#C`mHSpdR2E%SG1%`zTCRP*q@I*`$GGkwnK)PAtP1!4?%tWEX{L0@>W3 zWh3S^5{JVIB7z|A0k(5WdniFZWVz5anSUG(E7T^E)FcyYL}Z1{as#a=B@#+LlnSgS z+Ex?dhDVO_qdnCNW=@dpk)YjFDhO{F(S~qP6g&XSZiplH}owwa5##cVmR#B;fM`q z07qHl4B#khtQ)`+@zR0Y_RujhPy*}h7Ad=S`RTZy%TZ#ag8)y&`r+(K!zP;r`Z}l{ zowPcz$*C5dS%O`06u29=ncRJ3Rn-kXSwiQfPJF~kfXHe4Sah1^i0g| zB{um0SgSCrx0YHiybd@XwmN;r;mC`I=0>{xG(En5tk&A<)}5Zn>nqyZI{M}Uy@vg* z=Z?nmenXD(Ly#nvGr*YS?<bgNXYSVls+loyVz}|wE0@UnNX_V z0DlACv3%n-m?Kx+Xpm!AWUVV-0$hka6TAz&4VmfC9qCk?5_utnXE+|%JKQiiN|`JZ zEXAG)UL>==ST)U^M{OcWp!GA@-FgmST9ubLtLfc0x#o{gMinzhiDB6UKJaW`x!DV1 z{)GK$5%dK98K>>B?~J!LSzXZYC^H5z!E+36Ci8N#&K>JFz`Cx^)t;!wY~Q%ndLLiw zvjVN%kf@^|2AJR+GKa6{$>U@lxup6E9$#Hepo4|jKcZfM^Rb`EaFiiUbLaILp#`{% z{7ldTECh6)nfhx0LC~hR{b~sJy>C)^R~|BHYU1*z7RD7jM+uP;a4YZ?U~w+LBk+2K z=efFB8W#5Y{<?;Z(0a_7!&~iJJJ_};?*VUwbkB$N`2IENAV|7e zz+r=XLf$1Tc;0*?8{=g7B z!)dKsfS+S|%akmp_W1rS6RT@x^##IFUi7_lB{ECH_kk|}w*fncV1l1x=DTgfpuN$| z4NM1`2=lMSRVATvY0jw60%vSaZB98Q6Kf?UXD zd-RtuRaMx`!gPj0ePBmCWZvn{n0LG*@%M2u@MA*M#C8pksRcCfBjEW6;`HgTAJ`E+ zS>pdO<{jrls3yqifDB*j)k@?hET7UB#{)Z}Wq|lk9%eD2X<~;4Xqr0@PlO)d|AP{_ zUBb%^MDoCn=&&UIK0?t%&a=`!_e2vSGJbPU&#yH4IQ!umlm(bM->q(BXk=ko{MlI5 zL|)S}PkH14(0aCp`+z+yK2&56>Otg2@o@Kaz+2oE>Z1Ah^doO5}C zA|*>7(=kJsVTivEE1Jmbl*qn|1X@3oRO)KX4!cos67VZr#<*x1kmULm=ADJfNx*#? zKBgJ|dh@)GNo|@t4<+KKg5Vy3J41fRJ_M5(anmM>kU=uMhm&XPVi<_Pp$SpPjjtO1 zwxPp1C%9?uJOoloGpn8D49MNYj+s+Pf+|Z`e(sf?OIwXJ;rL#jFE$ z9pjkE(!d?$pX4e8D;?p2tEm`G;6{gHCa!m%RO%T|)VV;*{U@GQP+7xj0%eo6J;h}h zQAUMJmc>YnAHJm;u6lR##+KilaB9JY6>I=7CYV@V+d96g`ii<_#nTb)`QS_t196HU zxG)_AOQ+S1${e0o7*-4baK}-fX4%H|AJkV?ehFkrgh6p8h>*C&kL5KZ)(jvbOscM> zrM>OX8hsJ=k6qdx&IA!qYT}0w#%c$Q3Ev6K4m~^>lt|Nzy3v=f=xA$w@Wj)tRFRIz zGrR*?0`z}SZ4Y=@s{#5LurmK_LfUF^Ftny&O;^WHDwH?<+$W+;Pn0e(WO%cA7^9)k zmdb|uiOkwv;#ZjLU{tsvQVZm{hSxUnt_ikC3-Bf4=@U$IeS(5Hfat})6r-7zurCy< z0YW<8DOXMcJ`>^fN{Y;fV;XQP(ThK_9YR8{0b(@4!C2IPnjYauYv9Yyb$|1Wx?Jq#VT$F&F?sGl3KTFez8@ zLrew$>n3pGA1382eu&Wku$2k+!wk2bm}e1b;D3N`0jr$&b0;hIAI0qd8s%uuLd@xo z%OKuO4vJ#3OxBq5-Q@lv(wJeo>wz{W{@jT->YvTF~ffQg#K}I$9q+x%k)DxD0Q8l&k@=gwVfb%5cjXQ(1N2E~7?&u{)jKc*|i?>S@@|T=p5> zTq#KdWC`II%=C(Bg_I}Yi^z|C9b7BOu=5WQJ#!r5FS-nGt`t=szyV4fI+^32UslL!z9Zt0}{n#f~*ejZA82M%!umn4o1ls zAfhHfEpQXY2t{E6H`-GeC1HRpA_&T{p(OhN0~u*Uq)zYcAP(^hP@Ak+ zJh8gwqH+^Ilz1OtAbr9+XV3i>j7nBqRiV5M5nXzR(TY|g&o6rT{7pUG-v*{cbm?s}#&KnMm53f!RsHz>V<%kw{OT3U?mywQ zvOHM4{GK>NjLo5~l4Y6y7ip49fJrsAO-D|h@z1Rt?W?~!`;dqpz4$0w1He`$I1l&{ zrl}GIeJ1!ium=(D(%jeVnK^d+`5Sw>-@NINPet^|#YtHk0QyakAZu^Xh%TL~P9*N_ zPW$_5^g&Tvu)obeVbVn}uUYxpFOEIAESo(8V^a3SWdZ@M`~NlcYdP@`5f=xs)&!yB z#6L7H3R#q*37q)1kBh_rO34IH{5!@)V-QNg1Wx?9QC6AYT*+jN2OF;+5g74TzvRTf zV_a0WLsm`j&%if7cNqHQcNar;x8N*tzl3MCUD}ngNxWOiPHp5{Pu8BD}Xpm z;KXki7r6q7(gaTY_Ho0Y1u|gT#I*wJ!nlqS3C2`b{bAn}g{lkuq`!P!jX8_A&`UJJW&6u5{6NQvlUs?71 zeq+a9^6L7vZ`^yF`|{hyHGwRX=@WEdwn(3k=^qRWC;sqp5e*V+Bv(89<#VT)!Xu)M;sUTZ8;nchr{7;ILd?n2Uia1_5wCVf&c&j07*qoM6N<$ Eg2pe@xc~qF literal 0 HcmV?d00001 diff --git a/elm.js b/elm.js index 5e162ef..aaca5e5 100644 --- a/elm.js +++ b/elm.js @@ -6013,7 +6013,6 @@ var $author$project$Main$update = F2( } }); var $elm$html$Html$a = _VirtualDom_node('a'); -var $elm$html$Html$h1 = _VirtualDom_node('h1'); var $elm$json$Json$Encode$string = _Json_wrap; var $elm$html$Html$Attributes$stringProperty = F2( function (key, string) { @@ -6022,12 +6021,32 @@ var $elm$html$Html$Attributes$stringProperty = F2( key, $elm$json$Json$Encode$string(string)); }); +var $elm$html$Html$Attributes$class = $elm$html$Html$Attributes$stringProperty('className'); +var $elm$html$Html$h1 = _VirtualDom_node('h1'); var $elm$html$Html$Attributes$href = function (url) { return A2( $elm$html$Html$Attributes$stringProperty, 'href', _VirtualDom_noJavaScriptUri(url)); }; +var $elm$html$Html$img = _VirtualDom_node('img'); +var $author$project$Asset$Image = function (a) { + return {$: 'Image', a: a}; +}; +var $author$project$Asset$image = function (filename) { + return $author$project$Asset$Image('/assets/images/' + filename); +}; +var $author$project$Asset$logo = $author$project$Asset$image('dwyl.png'); +var $elm$html$Html$Attributes$src = function (url) { + return A2( + $elm$html$Html$Attributes$stringProperty, + 'src', + _VirtualDom_noJavaScriptOrHtmlUri(url)); +}; +var $author$project$Asset$src = function (_v0) { + var url = _v0.a; + return $elm$html$Html$Attributes$src(url); +}; var $elm$virtual_dom$VirtualDom$text = _VirtualDom_text; var $elm$html$Html$text = $elm$virtual_dom$VirtualDom$text; var $author$project$Main$view = function (model) { @@ -6042,18 +6061,39 @@ var $author$project$Main$view = function (model) { $elm$html$Html$a, _List_fromArray( [ - $elm$html$Html$Attributes$href('/auth') + $elm$html$Html$Attributes$href('/') ]), _List_fromArray( [ - $elm$html$Html$text('login/signup') + A2( + $elm$html$Html$img, + _List_fromArray( + [ + $author$project$Asset$src($author$project$Asset$logo), + $elm$html$Html$Attributes$class('center db pt2') + ]), + _List_Nil) ])), A2( $elm$html$Html$h1, - _List_Nil, + _List_fromArray( + [ + $elm$html$Html$Attributes$class('tc') + ]), _List_fromArray( [ $elm$html$Html$text('Dwyl application') + ])), + A2( + $elm$html$Html$a, + _List_fromArray( + [ + $elm$html$Html$Attributes$href('/auth'), + $elm$html$Html$Attributes$class('tc db') + ]), + _List_fromArray( + [ + $elm$html$Html$text('login/signup') ])) ]); case 'Auth': @@ -6067,11 +6107,21 @@ var $author$project$Main$view = function (model) { ]), _List_fromArray( [ - $elm$html$Html$text('home') + A2( + $elm$html$Html$img, + _List_fromArray( + [ + $author$project$Asset$src($author$project$Asset$logo), + $elm$html$Html$Attributes$class('center db pt2') + ]), + _List_Nil) ])), A2( $elm$html$Html$h1, - _List_Nil, + _List_fromArray( + [ + $elm$html$Html$Attributes$class('tc') + ]), _List_fromArray( [ $elm$html$Html$text('login page') @@ -6081,8 +6131,28 @@ var $author$project$Main$view = function (model) { return _List_fromArray( [ A2( + $elm$html$Html$a, + _List_fromArray( + [ + $elm$html$Html$Attributes$href('/') + ]), + _List_fromArray( + [ + A2( + $elm$html$Html$img, + _List_fromArray( + [ + $author$project$Asset$src($author$project$Asset$logo), + $elm$html$Html$Attributes$class('center db pt2') + ]), + _List_Nil) + ])), + A2( $elm$html$Html$h1, - _List_Nil, + _List_fromArray( + [ + $elm$html$Html$Attributes$class('tc') + ]), _List_fromArray( [ $elm$html$Html$text('page not found') diff --git a/index.html b/index.html index 9e92580..d994f1f 100644 --- a/index.html +++ b/index.html @@ -6,6 +6,7 @@ + diff --git a/src/Asset.elm b/src/Asset.elm new file mode 100644 index 0000000..ad6bf60 --- /dev/null +++ b/src/Asset.elm @@ -0,0 +1,23 @@ +module Asset exposing (Image, logo, src) + +import Html exposing (Attribute) +import Html.Attributes as Attr + + +type Image + = Image String + + +logo : Image +logo = + image "dwyl.png" + + +image : String -> Image +image filename = + Image ("/assets/images/" ++ filename) + + +src : Image -> Attribute msg +src (Image url) = + Attr.src url diff --git a/src/Main.elm b/src/Main.elm index 2c45a42..96c4c4b 100644 --- a/src/Main.elm +++ b/src/Main.elm @@ -1,5 +1,6 @@ module Main exposing (Page(..), main, routeParser) +import Asset import Browser import Browser.Navigation as Nav import Html exposing (..) @@ -94,15 +95,18 @@ view model = , body = case model.page of Home -> - [ a [ href "/auth" ] [ text "login/signup" ] - , h1 [] [ text "Dwyl application" ] + [ a [ href "/" ] [ img [ Asset.src Asset.logo, class "center db pt2" ] [] ] + , h1 [ class "tc" ] [ text "Dwyl application" ] + , a [ href "/auth", class "tc db" ] [ text "login/signup" ] ] Auth -> - [ a [ href "/" ] [ text "home" ] - , h1 [] [ text "login page" ] + [ a [ href "/" ] [ img [ Asset.src Asset.logo, class "center db pt2" ] [] ] + , h1 [ class "tc" ] [ text "login page" ] ] NotFound -> - [ h1 [] [ text "page not found" ] ] + [ a [ href "/" ] [ img [ Asset.src Asset.logo, class "center db pt2" ] [] ] + , h1 [ class "tc" ] [ text "page not found" ] + ] } diff --git a/tests/AssetTests.elm b/tests/AssetTests.elm new file mode 100644 index 0000000..76449c7 --- /dev/null +++ b/tests/AssetTests.elm @@ -0,0 +1,18 @@ +module AssetTests exposing (suite) + +import Asset +import Expect exposing (Expectation) +import Fuzz exposing (Fuzzer, int, list, string) +import Html.Attributes as Attr +import Main exposing (..) +import Test exposing (..) + + +suite : Test +suite = + describe "test Asset module" + [ test "src logo is defined" <| + \_ -> + Asset.src Asset.logo + |> Expect.equal (Attr.src "/assets/images/dwyl.png") + ]