import { put as e, select as r, takeLeading as o, take as i } from "redux-saga/effects"
import { taskErrorSaga as t } from "../../error"
import {
getIdentityShouldMigrateRecoveryPhrase as a,
migrateRecoveryPhraseCmd as d,
setMigrateRecoveryPhrase as m,
migrateRecoveryPhraseDeclineCmd as n,
migrateRecoveryPhraseResetFormCmd as c,
} from "../identity.reducer"
import { PREFERENCES as l, preferenceUpdateTask as y } from "../../preferences"
import { normalizeRecoveryPhrase as s } from "../identity.model"
import { getCoreBackend as f } from "../../../backend"
import { apiCall as R } from "../../../api/core"
const p = 3
export function* migrateRecoveryPhraseDeclineCmdHandler() {
yield y(l.MIGRATE_RECOVERY_PHRASE_DECLINED, !0)
}
export function* migrateRecoveryPhraseResetFormCmdHandler() {
yield e(m({ loading: !1, error: !1 }))
}
export function* migrateRecoveryPhraseSaga() {
if (!(yield r(a))) return
;(yield o(n, migrateRecoveryPhraseDeclineCmdHandler),
yield o(c, migrateRecoveryPhraseResetFormCmdHandler))
let l = 0
for (;;) {
const r = yield i(d),
o = s(r.payload)
l += 1
try {
yield e(m({ error: !1, loading: !0 }))
const r = f()
;(yield R(r.storeRecoveryPhrase, o), yield e(m({ loading: !1, error: !1, success: !0 })))
} catch (r) {
;(yield e(m({ loading: !1, error: !0, manyRetries: l > 3 })),
t("migrateRecoveryPhraseCmdHandler", r))
}
}
}