@@ -31,17 +31,17 @@ const params = {
3131 top,
3232 firstload,
3333 distance,
34- emit : initEmitter (emit, stateHandler (state)) ,
34+ prevHeight : 0 ,
3535 parentEl: null ,
3636};
37+ params .emit = initEmitter (emit, stateHandler (state), params);
3738
3839const stateWatcher = () =>
3940 watch (state, async newVal => {
4041 const parentEl = params .parentEl || document .documentElement ;
41- const prevHeight = parentEl .scrollHeight ;
4242 await nextTick ();
4343 if (newVal == " loaded" && top)
44- parentEl .scrollTop = parentEl .scrollHeight - prevHeight;
44+ parentEl .scrollTop = parentEl .scrollHeight - params . prevHeight ;
4545 if (newVal == " loaded" && isVisible (infiniteLoading .value , params .parentEl ))
4646 params .emit ();
4747 if (newVal == " complete" ) observer .disconnect ();
@@ -67,16 +67,31 @@ onUnmounted(() => {
6767
6868<template >
6969 <div ref =" infiniteLoading" >
70- <slot v-if =" state == 'loading'" name =" spinner" >
70+ <slot
71+ v-if =" state == 'loading'"
72+ name =" spinner"
73+ >
7174 <Spinner />
7275 </slot >
73- <slot v-if =" state == 'complete'" name =" complete" >
76+ <slot
77+ v-if =" state == 'complete'"
78+ name =" complete"
79+ >
7480 <span > {{ slots?.complete || "No more results!" }} </span >
7581 </slot >
76- <slot v-if =" state == 'error'" name =" error" :retry =" params.emit" >
82+ <slot
83+ v-if =" state == 'error'"
84+ name =" error"
85+ :retry =" params.emit"
86+ >
7787 <span class =" state-error" >
7888 <span >{{ slots?.error || "Oops something went wrong!" }}</span >
79- <button class =" retry" @click =" params.emit" >retry</button >
89+ <button
90+ class =" retry"
91+ @click =" params.emit"
92+ >
93+ retry
94+ </button >
8095 </span >
8196 </slot >
8297 </div >
0 commit comments