Fixed execution of RxJS teardown logic on complete (7.2.3 regression)

This commit is contained in:
squidfunk
2021-08-11 23:44:01 +02:00
parent 281fa3ac91
commit f4b1f97dd0
22 changed files with 88 additions and 55 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -223,7 +223,7 @@
</script> </script>
{% endblock %} {% endblock %}
{% block scripts %} {% block scripts %}
<script src="{{ 'assets/javascripts/bundle.febc23d1.min.js' | url }}"></script> <script src="{{ 'assets/javascripts/bundle.9264e2c0.min.js' | url }}"></script>
{% for path in config["extra_javascript"] %} {% for path in config["extra_javascript"] %}
<script src="{{ path | url }}"></script> <script src="{{ path | url }}"></script>
{% endfor %} {% endfor %}

View File

@@ -16,5 +16,5 @@
{% endblock %} {% endblock %}
{% block scripts %} {% block scripts %}
{{ super() }} {{ super() }}
<script src="{{ 'overrides/assets/javascripts/bundle.515b7185.min.js' | url }}"></script> <script src="{{ 'overrides/assets/javascripts/bundle.a07ad7e8.min.js' | url }}"></script>
{% endblock %} {% endblock %}

View File

@@ -31,6 +31,7 @@ import {
} from "rxjs" } from "rxjs"
import { import {
distinctUntilKeyChanged, distinctUntilKeyChanged,
finalize,
map, map,
switchMap, switchMap,
tap, tap,
@@ -175,7 +176,8 @@ export function mountCodeBlock(
/* Create and return component */ /* Create and return component */
return watchCodeBlock(el, options) return watchCodeBlock(el, options)
.pipe( .pipe(
tap(internal$), tap(state => internal$.next(state)),
finalize(() => internal$.complete()),
map(state => ({ ref: el, ...state })) map(state => ({ ref: el, ...state }))
) )
} }

View File

@@ -23,6 +23,7 @@
import { Observable, Subject } from "rxjs" import { Observable, Subject } from "rxjs"
import { import {
filter, filter,
finalize,
map, map,
mapTo, mapTo,
mergeWith, mergeWith,
@@ -107,7 +108,8 @@ export function mountDetails(
/* Create and return component */ /* Create and return component */
return watchDetails(el, options) return watchDetails(el, options)
.pipe( .pipe(
tap(internal$), tap(state => internal$.next(state)),
finalize(() => internal$.complete()),
mapTo({ ref: el }) mapTo({ ref: el })
) )
} }

View File

@@ -28,6 +28,7 @@ import {
of of
} from "rxjs" } from "rxjs"
import { import {
finalize,
delay, delay,
map, map,
observeOn, observeOn,
@@ -131,7 +132,8 @@ export function mountDialog(
/* Create and return component */ /* Create and return component */
return watchDialog(el, options) return watchDialog(el, options)
.pipe( .pipe(
tap(internal$), tap(state => internal$.next(state)),
finalize(() => internal$.complete()),
map(state => ({ ref: el, ...state })) map(state => ({ ref: el, ...state }))
) )
} }

View File

@@ -28,6 +28,7 @@ import {
} from "rxjs" } from "rxjs"
import { import {
distinctUntilKeyChanged, distinctUntilKeyChanged,
finalize,
map, map,
observeOn, observeOn,
tap tap
@@ -139,7 +140,8 @@ export function mountHeaderTitle(
/* Create and return component */ /* Create and return component */
return watchHeaderTitle(headline, options) return watchHeaderTitle(headline, options)
.pipe( .pipe(
tap(internal$), tap(state => internal$.next(state)),
finalize(() => internal$.complete()),
map(state => ({ ref: el, ...state })) map(state => ({ ref: el, ...state }))
) )
} }

View File

@@ -27,6 +27,7 @@ import {
of of
} from "rxjs" } from "rxjs"
import { import {
finalize,
map, map,
mapTo, mapTo,
mergeMap, mergeMap,
@@ -140,7 +141,8 @@ export function mountPalette(
const inputs = getElements<HTMLInputElement>("input", el) const inputs = getElements<HTMLInputElement>("input", el)
return watchPalette(inputs) return watchPalette(inputs)
.pipe( .pipe(
tap(internal$), tap(state => internal$.next(state)),
finalize(() => internal$.complete()),
map(state => ({ ref: el, ...state })) map(state => ({ ref: el, ...state }))
) )
} }

View File

@@ -32,6 +32,7 @@ import {
distinctUntilChanged, distinctUntilChanged,
distinctUntilKeyChanged, distinctUntilKeyChanged,
filter, filter,
finalize,
map, map,
take, take,
takeLast, takeLast,
@@ -172,7 +173,8 @@ export function mountSearchQuery(
/* Create and return component */ /* Create and return component */
return watchSearchQuery(el, { tx$, rx$ }) return watchSearchQuery(el, { tx$, rx$ })
.pipe( .pipe(
tap(internal$), tap(state => internal$.next(state)),
finalize(() => internal$.complete()),
map(state => ({ ref: el, ...state })) map(state => ({ ref: el, ...state }))
) )
} }

View File

@@ -30,6 +30,7 @@ import {
import { import {
bufferCount, bufferCount,
filter, filter,
finalize,
map, map,
observeOn, observeOn,
switchMap, switchMap,
@@ -152,7 +153,8 @@ export function mountSearchResult(
/* Create and return component */ /* Create and return component */
return result$ return result$
.pipe( .pipe(
tap(internal$), tap(state => internal$.next(state)),
finalize(() => internal$.complete()),
map(state => ({ ref: el, ...state })) map(state => ({ ref: el, ...state }))
) )
} }

View File

@@ -25,7 +25,11 @@ import {
Subject, Subject,
fromEvent fromEvent
} from "rxjs" } from "rxjs"
import { map, tap } from "rxjs/operators" import {
finalize,
map,
tap
} from "rxjs/operators"
import { getLocation } from "~/browser" import { getLocation } from "~/browser"
@@ -112,7 +116,8 @@ export function mountSearchShare(
/* Create and return component */ /* Create and return component */
return watchSearchShare(el, options) return watchSearchShare(el, options)
.pipe( .pipe(
tap(internal$), tap(state => internal$.next(state)),
finalize(() => internal$.complete()),
map(state => ({ ref: el, ...state })) map(state => ({ ref: el, ...state }))
) )
} }

View File

@@ -30,6 +30,7 @@ import {
combineLatestWith, combineLatestWith,
distinctUntilChanged, distinctUntilChanged,
filter, filter,
finalize,
map, map,
observeOn, observeOn,
tap tap
@@ -144,7 +145,8 @@ export function mountSearchSuggest(
/* Create and return component */ /* Create and return component */
return result$ return result$
.pipe( .pipe(
tap(internal$), tap(state => internal$.next(state)),
finalize(() => internal$.complete()),
map(() => ({ ref: el })) map(() => ({ ref: el }))
) )
} }

View File

@@ -28,6 +28,7 @@ import {
} from "rxjs" } from "rxjs"
import { import {
distinctUntilChanged, distinctUntilChanged,
finalize,
map, map,
observeOn, observeOn,
tap, tap,
@@ -157,7 +158,8 @@ export function mountSidebar(
/* Create and return component */ /* Create and return component */
return watchSidebar(el, options) return watchSidebar(el, options)
.pipe( .pipe(
tap(internal$), tap(state => internal$.next(state)),
finalize(() => internal$.complete()),
map(state => ({ ref: el, ...state })) map(state => ({ ref: el, ...state }))
) )
} }

View File

@@ -24,6 +24,7 @@ import { NEVER, Observable, Subject, defer, of } from "rxjs"
import { import {
catchError, catchError,
filter, filter,
finalize,
map, map,
shareReplay, shareReplay,
tap tap
@@ -117,7 +118,8 @@ export function mountSource(
/* Create and return component */ /* Create and return component */
return watchSource(el) return watchSource(el)
.pipe( .pipe(
tap(internal$), tap(state => internal$.next(state)),
finalize(() => internal$.complete()),
map(state => ({ ref: el, ...state })) map(state => ({ ref: el, ...state }))
) )
} }

View File

@@ -23,6 +23,7 @@
import { Observable, Subject, animationFrameScheduler } from "rxjs" import { Observable, Subject, animationFrameScheduler } from "rxjs"
import { import {
distinctUntilKeyChanged, distinctUntilKeyChanged,
finalize,
map, map,
observeOn, observeOn,
switchMap, switchMap,
@@ -135,7 +136,8 @@ export function mountTabs(
/* Create and return component */ /* Create and return component */
return watchTabs(el, options) return watchTabs(el, options)
.pipe( .pipe(
tap(internal$), tap(state => internal$.next(state)),
finalize(() => internal$.complete()),
map(state => ({ ref: el, ...state })) map(state => ({ ref: el, ...state }))
) )
} }

View File

@@ -30,6 +30,7 @@ import {
bufferCount, bufferCount,
distinctUntilChanged, distinctUntilChanged,
distinctUntilKeyChanged, distinctUntilKeyChanged,
finalize,
map, map,
observeOn, observeOn,
scan, scan,
@@ -267,7 +268,8 @@ export function mountTableOfContents(
const anchors = getElements<HTMLAnchorElement>("[href^=\\#]", el) const anchors = getElements<HTMLAnchorElement>("[href^=\\#]", el)
return watchTableOfContents(anchors, options) return watchTableOfContents(anchors, options)
.pipe( .pipe(
tap(internal$), tap(state => internal$.next(state)),
finalize(() => internal$.complete()),
map(state => ({ ref: el, ...state })) map(state => ({ ref: el, ...state }))
) )
} }

View File

@@ -30,6 +30,7 @@ import {
bufferCount, bufferCount,
distinctUntilChanged, distinctUntilChanged,
distinctUntilKeyChanged, distinctUntilKeyChanged,
finalize,
map, map,
observeOn, observeOn,
tap, tap,
@@ -170,7 +171,8 @@ export function mountBackToTop(
/* Create and return component */ /* Create and return component */
return watchBackToTop(el, { viewport$, header$, main$ }) return watchBackToTop(el, { viewport$, header$, main$ })
.pipe( .pipe(
tap(internal$), tap(state => internal$.next(state)),
finalize(() => internal$.complete()),
map(state => ({ ref: el, ...state })) map(state => ({ ref: el, ...state }))
) )
} }

View File

@@ -33,6 +33,7 @@ import {
bufferCount, bufferCount,
distinctUntilKeyChanged, distinctUntilKeyChanged,
filter, filter,
finalize,
map, map,
observeOn, observeOn,
switchMap, switchMap,
@@ -191,7 +192,8 @@ export function mountIconSearchResult(
/* Create and return component */ /* Create and return component */
return watchIconSearchResult(el, { query$, index$ }) return watchIconSearchResult(el, { query$, index$ })
.pipe( .pipe(
tap(internal$), tap(state => internal$.next(state)),
finalize(() => internal$.complete()),
map(state => ({ ref: el, ...state })) map(state => ({ ref: el, ...state }))
) )
} }