some basic expiration modal. "don't as again" doesn't work yet

This commit is contained in:
Henry Jameson 2025-06-12 20:04:39 +03:00
commit b9161ef697
17 changed files with 117 additions and 124 deletions

View file

@ -97,8 +97,11 @@ export const defaultState = {
alwaysShowSubjectInput: undefined, // instance default
postContentType: undefined, // instance default
minimalScopesMode: undefined, // instance default
// This hides statuses filtered via a word filter
hideFilteredStatuses: undefined, // instance default
// Confirmations
modalOnRepeat: undefined, // instance default
modalOnUnfollow: undefined, // instance default
modalOnBlock: undefined, // instance default
@ -110,6 +113,11 @@ export const defaultState = {
modalOnApproveFollow: undefined, // instance default
modalOnDenyFollow: undefined, // instance default
modalOnRemoveUserFromFollowers: undefined, // instance default
// Expiry confirmations/default actions
onMuteDefaultAction: 'ask',
onBlockDefaultAction: 'ask',
modalMobileCenter: undefined,
playVideosInModal: false,
useOneClickNsfw: false,

View file

@ -162,6 +162,7 @@ const defaultState = {
suggestionsWeb: '',
quotingAvailable: false,
groupActorAvailable: false,
blockExpiration: false,
// Html stuff
instanceSpecificPanelContent: '',

View file

@ -43,11 +43,20 @@ const getNotificationPermission = () => {
return Promise.resolve(Notification.permission)
}
const blockUser = (store, id) => {
return store.rootState.api.backendInteractor.blockUser({ id })
const blockUser = (store, args) => {
const id = args.id
const expiresIn = typeof args === 'object' ? args.expiresIn : 0
const predictedRelationship = store.state.relationships[id] || { id }
store.commit('updateUserRelationship', [predictedRelationship])
store.commit('addBlockId', id)
return store.rootState.api.backendInteractor.blockUser({ id, expiresIn })
.then((relationship) => {
console.log(relationship)
store.commit('updateUserRelationship', [relationship])
store.commit('addBlockId', id)
store.commit('removeStatus', { timeline: 'friends', userId: id })
store.commit('removeStatus', { timeline: 'public', userId: id })
store.commit('removeStatus', { timeline: 'publicAndExternal', userId: id })
@ -74,7 +83,6 @@ const muteUser = (store, args) => {
const expiresIn = typeof args === 'object' ? args.expiresIn : 0
const predictedRelationship = store.state.relationships[id] || { id }
predictedRelationship.muting = true
store.commit('updateUserRelationship', [predictedRelationship])
store.commit('addMuteId', id)
@ -360,20 +368,20 @@ const users = {
return blocks
})
},
blockUser (store, id) {
return blockUser(store, id)
blockUser (store, data) {
return blockUser(store, data)
},
unblockUser (store, id) {
return unblockUser(store, id)
unblockUser (store, data) {
return unblockUser(store, data)
},
removeUserFromFollowers (store, id) {
return removeUserFromFollowers(store, id)
},
blockUsers (store, ids = []) {
return Promise.all(ids.map(id => blockUser(store, id)))
blockUsers (store, data = []) {
return Promise.all(data.map(d => blockUser(store, d)))
},
unblockUsers (store, ids = []) {
return Promise.all(ids.map(id => unblockUser(store, id)))
unblockUsers (store, data = []) {
return Promise.all(data.map(d => unblockUser(store, d)))
},
editUserNote (store, args) {
return editUserNote(store, args)
@ -396,8 +404,8 @@ const users = {
return mutes
})
},
muteUser (store, id) {
return muteUser(store, id)
muteUser (store, data) {
return muteUser(store, data)
},
unmuteUser (store, id) {
return unmuteUser(store, id)
@ -408,11 +416,11 @@ const users = {
showReblogs (store, id) {
return showReblogs(store, id)
},
muteUsers (store, ids = []) {
return Promise.all(ids.map(id => muteUser(store, id)))
muteUsers (store, data = []) {
return Promise.all(data.map(d => muteUser(store, d)))
},
unmuteUsers (store, ids = []) {
return Promise.all(ids.map(id => unmuteUser(store, id)))
return Promise.all(ids.map(d => unmuteUser(store, d)))
},
fetchDomainMutes (store) {
return store.rootState.api.backendInteractor.fetchDomainMutes()