Toggle navigation
Toggle navigation
This project
Loading...
Sign in
최원석
/
2021-1-database-project
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
1seok2
2021-03-12 21:45:32 +0900
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
901d59ad36b63ee537f1708ccc32b2ec46a09bc8
901d59ad
1 parent
d84ee3fb
add Page loader
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
75 additions
and
11 deletions
app/src/App.ts
app/src/assets/style/PageLoader.scss
app/src/assets/style/PageTransition.scss
app/src/components/add.event.ts
app/src/components/page.loader.ts
app/src/index.ts
app/src/App.ts
View file @
901d59a
...
...
@@ -9,8 +9,8 @@
import
Header
from
"./views/header"
;
import
Body
from
"./views/body"
;
import
Footer
from
"./views/footer"
;
import
'./assets/style/App.scss'
;
import
{
getState
}
from
"@src/store/state"
;
import
'./assets/style/App.scss'
;
const
App
=
(
pathname
:
string
)
:
string
=>
{
/* id 없을 시 id 입력으로 redirect */
...
...
app/src/assets/style/PageLoader.scss
0 → 100644
View file @
901d59a
.page-loader
{
position
:
fixed
;
left
:
46%
;
top
:
47%
;
display
:
none
;
width
:
80px
;
height
:
80px
;
z-index
:
-1
;
}
.page-loader
:after
{
content
:
" "
;
display
:
block
;
width
:
64px
;
height
:
64px
;
margin
:
8px
;
border-radius
:
50%
;
border
:
12px
solid
#aaa
;
border-color
:
#a29bfe
transparent
#a29bfe
transparent
;
transform
:
translate
(
-50%
,
-50%
);
animation
:
spin
1
.2s
both
infinite
;
}
/* Safari */
@-webkit-keyframes
spin
{
0
%
{
-webkit-transform
:
rotate
(
0deg
);
}
100
%
{
-webkit-transform
:
rotate
(
360deg
);
}
}
@keyframes
spin
{
0
%
{
transform
:
rotate
(
0deg
);
}
100
%
{
transform
:
rotate
(
360deg
);
}
}
\ No newline at end of file
app/src/assets/style/PageTransition.scss
View file @
901d59a
...
...
@@ -51,7 +51,7 @@
top
:
50%
;
transform
:
translate
(
-50%
,-
50%
);
background-color
:
#353535
;
z-index
:
1
;
z-index
:
2
;
display
:
none
;
&
.transition-0
{
...
...
app/src/components/add.event.ts
View file @
901d59a
...
...
@@ -5,8 +5,9 @@
**/
import
{
BASE_URL
}
from
"@src/config/url"
;
import
{
randomTransition
}
from
"@src/components/page.transition"
;
import
{
setState
}
from
"@src/store/state"
;
import
{
togglePageLoader
}
from
"@src/components/page.loader"
;
import
{
randomTransition
}
from
"@src/components/page.transition"
;
export
const
addEvent
=
async
(
e
:
Event
,
...
...
@@ -28,6 +29,7 @@ export const addEvent = async (
else
if
((
e
.
target
as
HTMLButtonElement
).
id
===
'search-button'
)
{
let
result
:
any
=
null
;
const
insta_id
=
(
document
.
querySelector
(
'#id-input'
)
as
HTMLInputElement
).
value
;
togglePageLoader
(
true
);
if
(
insta_id
){
try
{
...
...
@@ -36,16 +38,23 @@ export const addEvent = async (
console
.
log
(
e
);
}
finally
{
console
.
log
(
'res!'
,
result
);
result
&&
$App
&&
(()
=>
{
randomTransition
();
setState
(
result
);
setTimeout
(()
=>
{
$App
.
innerHTML
=
App
(
'main'
);
},
1200
)
})();
if
(
result
){
$App
&&
(()
=>
{
randomTransition
();
setState
(
result
);
setTimeout
(()
=>
{
$App
.
innerHTML
=
App
(
'main'
);
togglePageLoader
(
false
);
},
1200
)
})();
}
else
{
togglePageLoader
(
false
);
alert
(
'fail to search'
);
}
}
}
else
{
alert
(
'아이디를 입력하세요'
);
togglePageLoader
(
false
);
}
}
/* add POST event for button */
...
...
app/src/components/page.loader.ts
0 → 100644
View file @
901d59a
export
const
togglePageLoader
=
(
type
:
boolean
)
:
void
=>
{
const
$loader
:
HTMLDivElement
|
null
=
document
.
querySelector
(
'.page-loader'
);
if
(
$loader
)
{
if
(
type
)
{
$loader
.
style
.
display
=
'block'
;
$loader
.
style
.
zIndex
=
'1'
;
}
else
{
$loader
.
style
.
display
=
'none'
;
$loader
.
style
.
zIndex
=
'-1'
;
}
}
}
\ No newline at end of file
app/src/index.ts
View file @
901d59a
...
...
@@ -6,8 +6,9 @@
import
App
from
'./App'
;
import
{
initialTrantition
}
from
"./components/page.transition"
;
import
'./assets/style/PageTransition.scss'
;
import
{
addEvent
}
from
"@src/components/add.event"
;
import
'./assets/style/PageTransition.scss'
;
import
'./assets/style/PageLoader.scss'
;
window
.
addEventListener
(
'DOMContentLoaded'
,
()
=>
{
/* add div for page transitions */
...
...
@@ -19,6 +20,12 @@ window.addEventListener('DOMContentLoaded', () => {
initialTrantition
();
})();
(()
=>
{
const
$div
=
document
.
createElement
(
'div'
);
$div
.
className
=
"page-loader"
;
document
.
body
.
appendChild
(
$div
);
})();
const
$App
=
document
.
querySelector
(
'#App'
);
const
pathname
=
window
.
location
.
pathname
.
split
(
'/'
)[
1
];
...
...
Please
register
or
login
to post a comment