ywana-core8 0.1.61 → 0.1.63

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.61",
3
+ "version": "0.1.63",
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
@@ -121,30 +121,18 @@
121
121
  .site-page-container {
122
122
  position: relative;
123
123
  transition: all 0.3s ease;
124
+ opacity: 1;
125
+ transform: translateX(0);
124
126
  }
125
127
 
126
- /* Cuando una página sale */
127
128
  .site-page-container.page-out {
128
129
  opacity: 0;
129
130
  transform: translateX(-30px);
130
131
  }
131
132
 
132
- /* Cuando una página entra */
133
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
- }
134
+ opacity: 1;
135
+ transform: translateX(0);
148
136
  }
149
137
 
150
138
  .site6>main {
package/src/site/site.js CHANGED
@@ -253,13 +253,12 @@ const SiteMenu = ({ iconSrc, title, children, min }) => {
253
253
  * SitePage
254
254
  */
255
255
  const SitePage = ({ children, init }) => {
256
-
257
256
  const context = useContext(SiteContext)
258
257
  const { page } = context
259
-
260
- const [renderedPage, setRenderedPage] = useState(page)
261
- const [transitionClass, setTransitionClass] = useState('')
262
-
258
+
259
+ const [displayedPage, setDisplayedPage] = useState(page)
260
+ const [isExiting, setIsExiting] = useState(false)
261
+
263
262
  useEffect(() => {
264
263
  if (init) {
265
264
  context.goto(init)
@@ -269,23 +268,25 @@ const SitePage = ({ children, init }) => {
269
268
  }, [])
270
269
 
271
270
  useEffect(() => {
272
- if (page !== renderedPage) {
273
- setTransitionClass(`page-out`)
274
- setTimeout(() => {
275
- setTransitionClass(`page-in`)
276
- setRenderedPage(page)
277
- setTimeout(() => {
278
- setTransitionClass('')
279
- }, 300)
271
+ if (page !== displayedPage) {
272
+ setIsExiting(true)
273
+
274
+ // Esperamos a que la animación de salida termine
275
+ const timeout = setTimeout(() => {
276
+ setDisplayedPage(page)
277
+ setIsExiting(false)
280
278
  }, 300)
281
- setRenderedPage(page)
279
+
280
+ return () => clearTimeout(timeout)
282
281
  }
283
282
  }, [page])
284
283
 
285
- const currentPage = Children.toArray(children).filter(child => child.props ? child.props.id === renderedPage : false)
284
+ const allChildren = React.Children.toArray(children)
285
+ const current = allChildren.find(child => child.props?.id === displayedPage)
286
+
286
287
  return (
287
- <main className={`site-page-container ${transitionClass}`}>
288
- {currentPage}
288
+ <main className={`site-page-container ${isExiting ? 'page-out' : 'page-in'}`}>
289
+ {current}
289
290
  </main>
290
291
  )
291
292
  }