mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-17 06:37:23 +01:00
Update Party / Group Sidebar / Quest states (#12793)
* move groups/sidebar to groupSidebar.vue * lint files * extract group/party sidebar to rightSidebar.vue * wip stories with example data * update stories - wip sidebar re-styling * message party / group leader + move items to the menu * update paddings /place for quest section * invite to party / guild * update labels (* Party / Guild ) * guild-background to group-background * correct menu order + missing a label based on the group type * no quest - styles / layout applied * quest owner / not started - styles applied + extracted questActions from questDetailsModal.vue to a mixin * no challenge style * hover with underlines * quest-pending area layout / margins * "Collection Quest/Quest Owner Participating" Styling Done * group sidebar menu with icons / background * remove most participate button styles * fix quest-invite panel * move "Start Quest" + add "Leave Quest" * Not Participating + Boss + Rage Quests restyling * party quest changes - invitedToQuest + button styles + no-items style + view details * fix icons + rage value + colors * fix duplicate key * hide items label if 0 items found + hide pending damage if there is none + sidebar section margin + fix percent calculation 0 => 0% * combine quest abandon / cancel to one call + hide begin if quest has already started + close modal if quest was canceled * remove unused translate string * allow leaving an accepted but inactive quest + disable leave when user is quest leader * update "are you sure" questions - remove "doubleSureAbort" - add "sureLeaveInactive" * sidebar margins + menu icon color * refactored css rules * improve some styles * fix button spacing * fix dropmenu with icon hover * hide leave quest for leaders + fix quest buttons spacing * add pending items label * remove "X items found" label * first round of fixes * last v-once * Update Quest Dialogs (#13112) * new quest rewards panel + extract questPopover and itemWithLabel * WIP: questInfo still not applying the row-height.. * split up start-quest-modal into select and detail modal - also rename the current quest-details to be the group-quest-details modal * remove start-quest-modal from modal-scss * update package-lock * WIP before using the quest sidebar branch as a base * move quest detail actions to the "new" details dialog * quest details layout for owner / participant * fix quest rewards - open details modal from sidebar * apply quest-details dialog styles to the buyQuestModal one * fix quest reward icons / popover / texts * WIP back to quest selection * fix lint * merge selectQuestModal.vue with questDetailModal.vue + UI for the select quest * fix margins / layout / labels * fix quest detail + wip invitationListModal.vue / participantListModal.vue * fix questmodal user label centered * fix centered reward items + grouping items and adding a count-badge * sort quests by AZ or quantity * invitations modal * remove console.info * complete participantListModal.vue + extracted getClassName * missed a file for getClassName extraction * fix invitations * select the actual quest on details * fix margins on invite to party / start quest buttons * replace buyQuestModal close button and title * fix recursion due to the same name * missing import * sort quantity by highest first * fix "Can't find a Quest to start" styles * fix "your balance" padding * fix quest collections / drop items * fix member details in participants list * fix quest info * remove nullable because the build doesn't like it (on this file..) * add questCompleted to the stories + fix getDropName * replace quest-rewards in questCompleted.vue * fix questCompleted.vue style * delete obsolete components * add missing spritesheets to storebook * requested pr changes * refactored fetchMember * revert optional chaining * fix merge conflicts * fix rightSidebar hover colors - $scss var to css var * overflow auto instead of scroll * prevent wrapping of quest collections * rollback to multi line quest items * use min-width for the quest popover
This commit is contained in:
342
website/client/src/components/groups/group.stories.utils.js
Normal file
342
website/client/src/components/groups/group.stories.utils.js
Normal file
@@ -0,0 +1,342 @@
|
||||
import rightSidebar from '@/components/groups/rightSidebar';
|
||||
import getters from '@/store/getters';
|
||||
import content from '../../../../common/script/content';
|
||||
|
||||
export function createStory ({
|
||||
template,
|
||||
data,
|
||||
user = null,
|
||||
challengeOptions = {},
|
||||
}) {
|
||||
return {
|
||||
components: { rightSidebar },
|
||||
template,
|
||||
data,
|
||||
store: {
|
||||
getters,
|
||||
dispatch (id) {
|
||||
if (id === 'challenges:getGroupChallenges') {
|
||||
return [];
|
||||
}
|
||||
|
||||
return null;
|
||||
},
|
||||
state: {
|
||||
content,
|
||||
user: {
|
||||
data: {
|
||||
party: {},
|
||||
},
|
||||
...user,
|
||||
},
|
||||
challengeOptions,
|
||||
},
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
export const groupBossQuestParticipating = {
|
||||
leaderOnly: { challenges: false, getGems: false },
|
||||
quest: {
|
||||
progress: { collect: {}, hp: 30 },
|
||||
active: true,
|
||||
members: { 'acc2950e-9919-49bc-be7f-0ec4103e9f2b': true },
|
||||
extra: {},
|
||||
key: 'moon2',
|
||||
leader: 'acc2950e-9919-49bc-be7f-0ec4103e9f2b',
|
||||
},
|
||||
tasksOrder: {
|
||||
habits: [], dailys: [], todos: [], rewards: [],
|
||||
},
|
||||
purchased: {
|
||||
plan: {
|
||||
consecutive: {
|
||||
count: 0, offset: 0, gemCapExtra: 0, trinkets: 0,
|
||||
},
|
||||
quantity: 1,
|
||||
extraMonths: 0,
|
||||
gemsBought: 0,
|
||||
mysteryItems: [],
|
||||
},
|
||||
},
|
||||
privacy: 'private',
|
||||
chat: [],
|
||||
memberCount: 1,
|
||||
challengeCount: 0,
|
||||
balance: 0,
|
||||
_id: '6b125aa8-ef98-4307-b5b4-181091b747c9',
|
||||
type: 'party',
|
||||
name: 'Testings Party',
|
||||
managers: {},
|
||||
categories: [],
|
||||
leader: {
|
||||
auth: { local: { username: 'test' } },
|
||||
flags: { verifiedUsername: true },
|
||||
profile: { name: 'Testing' },
|
||||
_id: 'acc2950e-9919-49bc-be7f-0ec4103e9f2b',
|
||||
id: 'acc2950e-9919-49bc-be7f-0ec4103e9f2b',
|
||||
},
|
||||
summary: 'Testings Party',
|
||||
id: '6b125aa8-ef98-4307-b5b4-181091b747c9',
|
||||
};
|
||||
|
||||
export const groupBossQuestRage = {
|
||||
leaderOnly: { challenges: false, getGems: false },
|
||||
quest: {
|
||||
progress: { collect: {}, hp: 30, rage: 20.33434535 },
|
||||
active: true,
|
||||
members: { 'acc2950e-9919-49bc-be7f-0ec4103e9f2b': true },
|
||||
extra: {},
|
||||
key: 'dilatoryDistress2',
|
||||
leader: 'acc2950e-9919-49bc-be7f-0ec4103e9f2b',
|
||||
},
|
||||
tasksOrder: {
|
||||
habits: [], dailys: [], todos: [], rewards: [],
|
||||
},
|
||||
purchased: {
|
||||
plan: {
|
||||
consecutive: {
|
||||
count: 0, offset: 0, gemCapExtra: 0, trinkets: 0,
|
||||
},
|
||||
quantity: 1,
|
||||
extraMonths: 0,
|
||||
gemsBought: 0,
|
||||
mysteryItems: [],
|
||||
},
|
||||
},
|
||||
privacy: 'private',
|
||||
chat: [],
|
||||
memberCount: 1,
|
||||
challengeCount: 0,
|
||||
balance: 0,
|
||||
_id: '6b125aa8-ef98-4307-b5b4-181091b747c9',
|
||||
type: 'party',
|
||||
name: 'Testings Party',
|
||||
managers: {},
|
||||
categories: [],
|
||||
leader: {
|
||||
auth: { local: { username: 'test' } },
|
||||
flags: { verifiedUsername: true },
|
||||
profile: { name: 'Testing' },
|
||||
_id: 'acc2950e-9919-49bc-be7f-0ec4103e9f2b',
|
||||
id: 'acc2950e-9919-49bc-be7f-0ec4103e9f2b',
|
||||
},
|
||||
summary: 'Testings Party',
|
||||
id: '6b125aa8-ef98-4307-b5b4-181091b747c9',
|
||||
};
|
||||
|
||||
export function groupCollectionQuest (active) {
|
||||
return {
|
||||
leaderOnly: { challenges: false, getGems: false },
|
||||
quest: {
|
||||
progress: { collect: {} },
|
||||
active,
|
||||
members: {
|
||||
'05ca98f4-4706-47b5-8d02-142e6e78ba2e': true,
|
||||
'just-a-member': true,
|
||||
'b3b0be03-3f62-49ae-b776-b16419ef32cf': null,
|
||||
},
|
||||
extra: {},
|
||||
key: 'atom1',
|
||||
leader: '05ca98f4-4706-47b5-8d02-142e6e78ba2e',
|
||||
},
|
||||
tasksOrder: {
|
||||
habits: ['320496be-d663-4711-a7da-03205a2204b2'],
|
||||
dailys: ['0c6a3ecd-dbaf-4a34-bb61-1a2ecd3daa0e', '686e7766-9cef-4b77-8c8f-f4d6c5b63a85'],
|
||||
todos: ['76b3ef3e-1b01-4f24-a37e-0320f31d8132'],
|
||||
rewards: ['76dad8ea-0d95-47c3-ad9a-8e136ad80b7f'],
|
||||
},
|
||||
purchased: {
|
||||
active: true,
|
||||
plan: {
|
||||
consecutive: {
|
||||
count: 0, offset: 0, gemCapExtra: 0, trinkets: 0,
|
||||
},
|
||||
quantity: 3,
|
||||
extraMonths: 0,
|
||||
gemsBought: 0,
|
||||
mysteryItems: [],
|
||||
customerId: 'group-unlimited',
|
||||
dateCreated: null,
|
||||
dateTerminated: null,
|
||||
dateUpdated: null,
|
||||
owner: '05ca98f4-4706-47b5-8d02-142e6e78ba2e',
|
||||
paymentMethod: 'Group Unlimited',
|
||||
planId: 'group_monthly',
|
||||
subscriptionId: '',
|
||||
},
|
||||
},
|
||||
privacy: 'private',
|
||||
chat: [],
|
||||
memberCount: 3,
|
||||
challengeCount: 0,
|
||||
balance: 0,
|
||||
_id: '96ea599a-737b-47e2-ac17-8bd85b6ab62a',
|
||||
type: 'party',
|
||||
name: 'Party',
|
||||
managers: {},
|
||||
categories: [],
|
||||
leader: {
|
||||
auth: { local: { username: 'test2' } },
|
||||
flags: { verifiedUsername: true },
|
||||
profile: { name: 'MyDisplay2' },
|
||||
_id: '05ca98f4-4706-47b5-8d02-142e6e78ba2e',
|
||||
id: '05ca98f4-4706-47b5-8d02-142e6e78ba2e',
|
||||
},
|
||||
summary: 'Party',
|
||||
id: '96ea599a-737b-47e2-ac17-8bd85b6ab62a',
|
||||
};
|
||||
}
|
||||
|
||||
export const groupCollectionQuestPending = {
|
||||
leaderOnly: { challenges: false, getGems: false },
|
||||
quest: {
|
||||
progress: { collect: {} },
|
||||
active: false,
|
||||
members: { '05ca98f4-4706-47b5-8d02-142e6e78ba2e': true, 'b3b0be03-3f62-49ae-b776-b16419ef32cf': null },
|
||||
extra: {},
|
||||
key: 'atom1',
|
||||
leader: '05ca98f4-4706-47b5-8d02-142e6e78ba2e',
|
||||
},
|
||||
tasksOrder: {
|
||||
habits: ['320496be-d663-4711-a7da-03205a2204b2'],
|
||||
dailys: ['0c6a3ecd-dbaf-4a34-bb61-1a2ecd3daa0e', '686e7766-9cef-4b77-8c8f-f4d6c5b63a85'],
|
||||
todos: ['76b3ef3e-1b01-4f24-a37e-0320f31d8132'],
|
||||
rewards: ['76dad8ea-0d95-47c3-ad9a-8e136ad80b7f'],
|
||||
},
|
||||
purchased: { active: true },
|
||||
privacy: 'private',
|
||||
chat: [],
|
||||
memberCount: 2,
|
||||
challengeCount: 0,
|
||||
balance: 0,
|
||||
_id: '96ea599a-737b-47e2-ac17-8bd85b6ab62a',
|
||||
type: 'party',
|
||||
name: "MyDisplay2's Party",
|
||||
managers: {},
|
||||
categories: [],
|
||||
leader: {
|
||||
auth: { local: { username: 'test2' } },
|
||||
flags: { verifiedUsername: true },
|
||||
profile: { name: 'MyDisplay2' },
|
||||
_id: '05ca98f4-4706-47b5-8d02-142e6e78ba2e',
|
||||
id: '05ca98f4-4706-47b5-8d02-142e6e78ba2e',
|
||||
},
|
||||
summary: "MyDisplay2's Party",
|
||||
id: '96ea599a-737b-47e2-ac17-8bd85b6ab62a',
|
||||
};
|
||||
|
||||
|
||||
export const collectionQuestLeaderParticipating = {
|
||||
leaderOnly: { challenges: false, getGems: false },
|
||||
quest: {
|
||||
progress: { collect: { fireCoral: 4, blueFins: 0 } },
|
||||
active: true,
|
||||
members: { '05ca98f4-4706-47b5-8d02-142e6e78ba2e': true },
|
||||
extra: {},
|
||||
key: 'dilatoryDistress1',
|
||||
leader: '05ca98f4-4706-47b5-8d02-142e6e78ba2e',
|
||||
},
|
||||
tasksOrder: {
|
||||
habits: ['320496be-d663-4711-a7da-03205a2204b2'],
|
||||
dailys: ['0c6a3ecd-dbaf-4a34-bb61-1a2ecd3daa0e', '686e7766-9cef-4b77-8c8f-f4d6c5b63a85'],
|
||||
todos: ['76b3ef3e-1b01-4f24-a37e-0320f31d8132'],
|
||||
rewards: ['76dad8ea-0d95-47c3-ad9a-8e136ad80b7f'],
|
||||
},
|
||||
purchased: {
|
||||
active: true,
|
||||
plan: {
|
||||
consecutive: {
|
||||
count: 0, offset: 0, gemCapExtra: 0, trinkets: 0,
|
||||
},
|
||||
quantity: 3,
|
||||
extraMonths: 0,
|
||||
gemsBought: 0,
|
||||
mysteryItems: [],
|
||||
customerId: 'group-unlimited',
|
||||
dateCreated: null,
|
||||
dateTerminated: null,
|
||||
dateUpdated: null,
|
||||
owner: '05ca98f4-4706-47b5-8d02-142e6e78ba2e',
|
||||
paymentMethod: 'Group Unlimited',
|
||||
planId: 'group_monthly',
|
||||
subscriptionId: '',
|
||||
},
|
||||
},
|
||||
privacy: 'private',
|
||||
chat: [],
|
||||
memberCount: 2,
|
||||
challengeCount: 0,
|
||||
balance: 0,
|
||||
_id: '96ea599a-737b-47e2-ac17-8bd85b6ab62a',
|
||||
type: 'party',
|
||||
name: "MyDisplay2's Party",
|
||||
managers: {},
|
||||
categories: [],
|
||||
leader: {
|
||||
auth: { local: { username: 'test2' } },
|
||||
flags: { verifiedUsername: true },
|
||||
profile: { name: 'MyDisplay2' },
|
||||
_id: '05ca98f4-4706-47b5-8d02-142e6e78ba2e',
|
||||
id: '05ca98f4-4706-47b5-8d02-142e6e78ba2e',
|
||||
},
|
||||
summary: "MyDisplay2's Party",
|
||||
id: '96ea599a-737b-47e2-ac17-8bd85b6ab62a',
|
||||
};
|
||||
|
||||
export const collectionQuestNotParticipating = {
|
||||
leaderOnly: { challenges: false, getGems: false },
|
||||
quest: {
|
||||
progress: { collect: { fireCoral: 4, blueFins: 3 } },
|
||||
active: true,
|
||||
members: { },
|
||||
extra: {},
|
||||
key: 'dilatoryDistress1',
|
||||
leader: '05ca98f4-4706-47b5-8d02-142e6e78ba2e',
|
||||
},
|
||||
tasksOrder: {
|
||||
habits: ['320496be-d663-4711-a7da-03205a2204b2'],
|
||||
dailys: ['0c6a3ecd-dbaf-4a34-bb61-1a2ecd3daa0e', '686e7766-9cef-4b77-8c8f-f4d6c5b63a85'],
|
||||
todos: ['76b3ef3e-1b01-4f24-a37e-0320f31d8132'],
|
||||
rewards: ['76dad8ea-0d95-47c3-ad9a-8e136ad80b7f'],
|
||||
},
|
||||
purchased: {
|
||||
active: true,
|
||||
plan: {
|
||||
consecutive: {
|
||||
count: 0, offset: 0, gemCapExtra: 0, trinkets: 0,
|
||||
},
|
||||
quantity: 3,
|
||||
extraMonths: 0,
|
||||
gemsBought: 0,
|
||||
mysteryItems: [],
|
||||
customerId: 'group-unlimited',
|
||||
dateCreated: null,
|
||||
dateTerminated: null,
|
||||
dateUpdated: null,
|
||||
owner: '05ca98f4-4706-47b5-8d02-142e6e78ba2e',
|
||||
paymentMethod: 'Group Unlimited',
|
||||
planId: 'group_monthly',
|
||||
subscriptionId: '',
|
||||
},
|
||||
},
|
||||
privacy: 'private',
|
||||
chat: [],
|
||||
memberCount: 2,
|
||||
challengeCount: 0,
|
||||
balance: 0,
|
||||
_id: '96ea599a-737b-47e2-ac17-8bd85b6ab62a',
|
||||
type: 'party',
|
||||
name: "MyDisplay2's Party",
|
||||
managers: {},
|
||||
categories: [],
|
||||
leader: {
|
||||
auth: { local: { username: 'test2' } },
|
||||
flags: { verifiedUsername: true },
|
||||
profile: { name: 'MyDisplay2' },
|
||||
_id: '05ca98f4-4706-47b5-8d02-142e6e78ba2e',
|
||||
id: '05ca98f4-4706-47b5-8d02-142e6e78ba2e',
|
||||
},
|
||||
summary: "MyDisplay2's Party",
|
||||
id: '96ea599a-737b-47e2-ac17-8bd85b6ab62a',
|
||||
};
|
||||
Reference in New Issue
Block a user