mirror of
https://github.com/re-rxjs/react-rxjs.git
synced 2025-12-08 18:01:51 +00:00
chore(core): decrease bundle-size
This commit is contained in:
parent
14398b3509
commit
2780e1740a
@ -18,7 +18,9 @@ export const Subscribe: React.FC<{
|
||||
useEffect(() => {
|
||||
const subscription = source$.subscribe()
|
||||
setMounted(1)
|
||||
return () => subscription.unsubscribe()
|
||||
return () => {
|
||||
subscription.unsubscribe()
|
||||
}
|
||||
}, [source$])
|
||||
return <>{mounted ? children : fallback}</>
|
||||
}
|
||||
|
||||
@ -3,7 +3,7 @@ import { BehaviorObservable } from "./BehaviorObservable"
|
||||
import { EMPTY_VALUE } from "./empty-value"
|
||||
|
||||
const reactEnhancer = <T>(source$: BehaviorObservable<T>): (() => T) => {
|
||||
let promise: Promise<T | void> | undefined
|
||||
let promise: Promise<T | void> | null
|
||||
let error: any = EMPTY_VALUE
|
||||
|
||||
return (): T => {
|
||||
@ -46,11 +46,11 @@ const reactEnhancer = <T>(source$: BehaviorObservable<T>): (() => T) => {
|
||||
subscription.unsubscribe()
|
||||
}
|
||||
}).finally(() => {
|
||||
promise = undefined
|
||||
promise = null
|
||||
})
|
||||
|
||||
if (value !== EMPTY_VALUE) {
|
||||
promise = undefined
|
||||
promise = null
|
||||
return value
|
||||
}
|
||||
|
||||
|
||||
@ -7,8 +7,8 @@ const shareLatest = <T>(
|
||||
shouldComplete = true,
|
||||
teardown = noop,
|
||||
): BehaviorObservable<T> => {
|
||||
let subject: Subject<T> | undefined
|
||||
let subscription: Subscription | undefined | null
|
||||
let subject: Subject<T> | null
|
||||
let subscription: Subscription | null
|
||||
let refCount = 0
|
||||
let currentValue: T = EMPTY_VALUE
|
||||
|
||||
@ -25,16 +25,16 @@ const shareLatest = <T>(
|
||||
},
|
||||
(err) => {
|
||||
const _subject = subject
|
||||
subscription = undefined
|
||||
subject = undefined
|
||||
subscription = null
|
||||
subject = null
|
||||
_subject!.error(err)
|
||||
},
|
||||
() => {
|
||||
subscription = undefined
|
||||
subscription = null
|
||||
shouldComplete && subject!.complete()
|
||||
},
|
||||
)
|
||||
if (subscription.closed) subscription = undefined
|
||||
if (subscription.closed) subscription = null
|
||||
} else {
|
||||
innerSub = subject.subscribe(subscriber)
|
||||
if (currentValue !== EMPTY_VALUE) {
|
||||
@ -51,8 +51,8 @@ const shareLatest = <T>(
|
||||
subscription.unsubscribe()
|
||||
}
|
||||
teardown()
|
||||
subject = undefined
|
||||
subscription = undefined
|
||||
subject = null
|
||||
subscription = null
|
||||
}
|
||||
}
|
||||
}) as BehaviorObservable<T>
|
||||
|
||||
@ -21,7 +21,9 @@ export const useObservable = <O>(
|
||||
})
|
||||
}
|
||||
|
||||
let subscription = source$.subscribe((val) => (syncVal = val), onError)
|
||||
let subscription = source$.subscribe((val) => {
|
||||
syncVal = val
|
||||
}, onError)
|
||||
if (err !== EMPTY_VALUE) return
|
||||
|
||||
const set = (val: O | (() => O)) => {
|
||||
@ -37,7 +39,9 @@ export const useObservable = <O>(
|
||||
}, onError)
|
||||
t.unsubscribe()
|
||||
|
||||
return () => subscription.unsubscribe()
|
||||
return () => {
|
||||
subscription.unsubscribe()
|
||||
}
|
||||
}, keys)
|
||||
|
||||
return state as Exclude<O, typeof SUSPENSE>
|
||||
|
||||
@ -13,6 +13,8 @@ import { useEffect } from "react"
|
||||
export const useSubscribe = <T>(source$: Observable<T>) => {
|
||||
useEffect(() => {
|
||||
const subscription = source$.subscribe()
|
||||
return () => subscription.unsubscribe()
|
||||
return () => {
|
||||
subscription.unsubscribe()
|
||||
}
|
||||
}, [source$])
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user