🎨 改进删除闪卡

This commit is contained in:
Liang Ding 2023-02-25 13:41:51 +08:00
parent 89fb0664f1
commit 3f88597b7d
No known key found for this signature in database
GPG key ID: 136F30F901A2231D
3 changed files with 9 additions and 9 deletions

View file

@ -176,7 +176,6 @@ export const openCardByData = (cardsData: ICard[], html = "") => {
fetchPost("/api/riff/reviewRiffCard", {
deckID: blocks[index].deckID,
cardID: blocks[index].cardID,
blockID: blocks[index].blockID,
rating: parseInt(type)
}, () => {
index++;

View file

@ -76,9 +76,8 @@ func reviewRiffCard(c *gin.Context) {
deckID := arg["deckID"].(string)
cardID := arg["cardID"].(string)
blockID := arg["blockID"].(string)
rating := int(arg["rating"].(float64))
err := model.ReviewFlashcard(deckID, cardID, blockID, riff.Rating(rating))
err := model.ReviewFlashcard(deckID, cardID, riff.Rating(rating))
if nil != err {
ret.Code = -1
ret.Msg = err.Error()
@ -148,8 +147,10 @@ func removeRiffCards(c *gin.Context) {
return
}
if "" != deckID {
deck := model.Decks[deckID]
ret.Data = deckData(deck)
}
}
func addRiffCards(c *gin.Context) {

View file

@ -134,7 +134,7 @@ func getCardsBlocks(cards []riff.Card, page int) (blocks []*Block, total, pageCo
// reviewCardCache <cardID, card> 用于复习时缓存卡片,以便支持撤销。
var reviewCardCache = map[string]riff.Card{}
func ReviewFlashcard(deckID, cardID, blockID string, rating riff.Rating) (err error) {
func ReviewFlashcard(deckID, cardID string, rating riff.Rating) (err error) {
deckLock.Lock()
defer deckLock.Unlock()
@ -150,16 +150,16 @@ func ReviewFlashcard(deckID, cardID, blockID string, rating riff.Rating) (err er
return
}
if cachedCard := reviewCardCache[card.ID()]; nil != cachedCard {
if cachedCard := reviewCardCache[cardID]; nil != cachedCard {
// 命中缓存说明这张卡片已经复习过了,这次调用复习是撤销后再次复习
// 将缓存的卡片重新覆盖回卡包中,以恢复最开始复习前的状态
deck.SetCard(cachedCard)
} else {
// 首次复习该卡片,将卡片缓存以便后续支持撤销后再次复习
reviewCardCache[card.ID()] = card
reviewCardCache[cardID] = card
}
deck.Review(blockID, rating)
deck.Review(cardID, rating)
err = deck.Save()
if nil != err {
logging.LogErrorf("save deck [%s] failed: %s", deckID, err)