ywana-core8 0.1.59 → 0.1.60

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ywana-core8",
3
- "version": "0.1.59",
3
+ "version": "0.1.60",
4
4
  "description": "ywana-core8",
5
5
  "homepage": "https://ywana.github.io/workspace",
6
6
  "author": "Ernesto Roldan Garcia",
package/src/site/site.css CHANGED
@@ -119,8 +119,32 @@
119
119
  }
120
120
 
121
121
  .site-page-container {
122
- position:relative;
123
- overflow: hidden;
122
+ position: relative;
123
+ transition: all 0.3s ease;
124
+ }
125
+
126
+ /* Cuando una página sale */
127
+ .site-page-container.page-out {
128
+ opacity: 0;
129
+ transform: translateX(-30px);
130
+ }
131
+
132
+ /* Cuando una página entra */
133
+ .site-page-container.page-in {
134
+ opacity: 0;
135
+ transform: translateX(30px);
136
+ animation: pageIn 0.3s forwards;
137
+ }
138
+
139
+ @keyframes pageIn {
140
+ from {
141
+ opacity: 0;
142
+ transform: translateX(30px);
143
+ }
144
+ to {
145
+ opacity: 1;
146
+ transform: translateX(0);
147
+ }
124
148
  }
125
149
 
126
150
  .site6>main {
package/src/site/site.js CHANGED
@@ -253,8 +253,13 @@ const SiteMenu = ({ iconSrc, title, children, min }) => {
253
253
  * SitePage
254
254
  */
255
255
  const SitePage = ({ children, init }) => {
256
+
256
257
  const context = useContext(SiteContext)
257
258
  const { page } = context
259
+
260
+ const [renderedPage, setRenderedPage] = useState(page)
261
+ const [transitionClass, setTransitionClass] = useState('')
262
+
258
263
  useEffect(() => {
259
264
  if (init) {
260
265
  context.goto(init)
@@ -262,9 +267,25 @@ const SitePage = ({ children, init }) => {
262
267
  context.goto("EMPTY")
263
268
  }
264
269
  }, [])
270
+
271
+ useEffect(() => {
272
+ if (page !== renderedPage) {
273
+ setTransitionClass(`page-out-${context.direction}`)
274
+ setTimeout(() => {
275
+ setTransitionClass(`page-in-${context.direction}`)
276
+ setRenderedPage(page)
277
+ setTimeout(() => {
278
+ setTransitionClass('')
279
+ }, 300)
280
+ }, 300)
281
+ setRenderedPage(page)
282
+ }
283
+ }, [page])
284
+
285
+ const currentPage = Children.toArray(children).filter(child => child.props ? child.props.id === renderedPage : false)
265
286
  return (
266
- <main>
267
- {React.Children.toArray(children).filter(child => child.props ? child.props.id === page : false)}
287
+ <main className={`site-page-container ${transitionClass}`}>
288
+ {currentPage}
268
289
  </main>
269
290
  )
270
291
  }