1- import { getBackgroundSvg } from './data/patterns' ;
1+ import { getPatternDefaultSize } from './data/patterns' ;
2+ import { updateBanner } from './helpers/helpers' ;
3+ import { getMainElements } from './helpers/elements' ;
24
35/* ************** Elements ************** */
46
5- let bannerImageContainer = document . querySelector ( '.header-image-container' ) ;
6- let bannerImage = document . querySelector ( '#github-header-image' ) ;
7- let title = bannerImage . querySelector ( '.title' ) ;
8- let subtitle = bannerImage . querySelector ( '.subtitle' ) ;
9-
10- let toolboxBackground = document . querySelector ( '.toolbox-background' ) ;
7+ const {
8+ toolboxBackground,
9+ } = getMainElements ( ) ;
1110
1211// init
1312let selectedPattern = 'bubbles' ;
1413let selectedPatternOpacity = 0.15 ;
1514let selectedPatternColor = 'FFF' ;
16- let selectedPatternSize = '200px' ;
15+ let selectedPatternSize = 200 ;
1716setPatternBackground ( ) ;
1817
19- /* ************** Set theme button ************** */
20-
21- // document.querySelector('.log-theme-button').addEventListener('click', () => {
22- // let obj = ` {background: '${document.querySelector('.color-selectors-container input#main-bg-color-selector').value}', title: '${document.querySelector('.color-selectors-container input#title-color-selector').value}', subtitle: '${document.querySelector('.color-selectors-container input#subtitle-color-selector').value}', border: '${document.querySelector('.bg-color-selectors input#border-color-selector').value}', borderSize: ${document.querySelector('.border-inputs input#border-input').value}, borderRadius: ${document.querySelector('.border-inputs input#border-radius-input').value}, textAlign: '${bannerImage.style.alignItems}', decoration: '${document.querySelector('.img-decoration-container img').src.split('/').pop().replace('.png', '')}.png', decorationSize: ${document.querySelector('.decorations-size-inputs input#decoration-size-input').value}, pattern: '${selectedPattern}', patternColor: '${document.querySelector('.pattern-inputs input#pattern-color-selector').value}', patternOpacity: ${document.querySelector('.pattern-inputs input#pattern-opacity-input').value}, titleFont: '${document.querySelector('.font-selectors-container #title-font-selector').value}', subtitleFont: '${document.querySelector('.font-selectors-container #subtitle-font-selector').value}'}, `;
23- // console.log(JSON.stringify(obj).replaceAll('\"', '\''))
24- // })
25-
2618/* ************** Color selectors ************** */
2719
2820function setBgColorValues ( ) {
2921 let bgColorSelector = toolboxBackground . querySelector ( '.bg-color-selectors input#background-bg-color-selector' ) ;
3022 let borderColorSelector = toolboxBackground . querySelector ( '.bg-color-selectors input#border-color-selector' ) ;
3123
32- bannerImage . style . backgroundColor = bgColorSelector . value ;
33- bannerImage . style . borderColor = borderColorSelector . value ;
24+ updateBanner ( {
25+ background : bgColorSelector . value ,
26+ borderColor : borderColorSelector . value ,
27+ } )
3428
3529 let mainTabBgColorSelector = document . querySelector ( '.color-selectors-container input#main-bg-color-selector' ) ;
3630 mainTabBgColorSelector . value = bgColorSelector . value ;
@@ -50,8 +44,11 @@ function setBorderValues() {
5044 let borderRadiusInput = toolboxBackground . querySelector ( '.border-inputs input#border-radius-input' ) ;
5145 let borderColorSelector = toolboxBackground . querySelector ( '.bg-color-selectors input#border-color-selector' ) ;
5246
53- bannerImage . style . border = `solid ${ borderColorSelector . value } ${ borderInput . value } px` ;
54- bannerImage . style . borderRadius = `${ borderRadiusInput . value } px` ;
47+ updateBanner ( {
48+ borderColor : borderColorSelector . value ,
49+ borderSize : borderInput . value ,
50+ borderRadius : borderRadiusInput . value
51+ } ) ;
5552}
5653
5754toolboxBackground . querySelectorAll ( '.border-inputs input' )
@@ -88,11 +85,14 @@ toolboxBackground.querySelectorAll('.pattern-inputs input[type="color"]')
8885/* ************** Patterns ************** */
8986
9087function setPatternBackground ( ) {
91- const patternColor = toolboxBackground . querySelector ( '.pattern-inputs input#pattern-color-selector' ) . value ;
92- selectedPatternColor = patternColor . replace ( '#' , '' ) ;
93-
94- bannerImage . style . backgroundImage = getBackgroundSvg ( selectedPattern , selectedPatternColor , selectedPatternOpacity ) ;
95- bannerImage . style . backgroundSize = `${ selectedPatternSize } px` ;
88+ const selectedPatternColor = toolboxBackground . querySelector ( '.pattern-inputs input#pattern-color-selector' ) . value ;
89+
90+ updateBanner ( {
91+ pattern : selectedPattern ,
92+ patternColor : selectedPatternColor ,
93+ patternOpacity : selectedPatternOpacity ,
94+ patternSize : selectedPatternSize
95+ } ) ;
9696}
9797
9898toolboxBackground . querySelectorAll ( '.patterns-buttons button' )
@@ -110,59 +110,7 @@ toolboxBackground.querySelectorAll('.patterns-buttons button')
110110 } )
111111
112112function setPatternDefaultSize ( patternValue ) {
113- switch ( patternValue ) {
114- case 'jigsaw' :
115- selectedPatternSize = 100 ;
116- break ;
117- case 'github' :
118- selectedPatternSize = 40 ;
119- break ;
120- case 'endless-constellation' :
121- selectedPatternSize = 250 ;
122- break ;
123- case 'floating-cogs' :
124- selectedPatternSize = 350 ;
125- break ;
126- case 'bubbles' :
127- selectedPatternSize = 200 ;
128- break ;
129- case 'random-shapes' :
130- selectedPatternSize = 80 ;
131- break ;
132- case 'lisbon' :
133- selectedPatternSize = 80 ;
134- break ;
135- case 'temple' :
136- selectedPatternSize = 100 ;
137- break ;
138- case 'topography' :
139- selectedPatternSize = 500 ;
140- break ;
141- case 'falling-triangles' :
142- selectedPatternSize = 36 ;
143- break ;
144- case 'glamorous' :
145- selectedPatternSize = 135 ;
146- break ;
147- case 'i-like-food' :
148- selectedPatternSize = 225 ;
149- break ;
150- case 'leaf' :
151- selectedPatternSize = 80 ;
152- break ;
153- case 'circuit-board' :
154- selectedPatternSize = 304 ;
155- break ;
156- case 'overlapping-circles' :
157- selectedPatternSize = 80 ;
158- break ;
159- case 'endless-clouds' :
160- selectedPatternSize = 112 ;
161- break ;
162- default :
163- selectedPatternSize = 100 ;
164- break ;
165- }
113+ selectedPatternSize = getPatternDefaultSize ( patternValue ) ;
166114 toolboxBackground . querySelector ( '.pattern-inputs #pattern-size-input' ) . value = selectedPatternSize ;
167115 toolboxBackground . querySelector ( '.pattern-inputs #pattern-size-input' ) . nextElementSibling . innerHTML = selectedPatternSize ;
168116}
0 commit comments