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:
negue
2021-05-28 23:11:43 +02:00
committed by GitHub
parent 33e7a378f7
commit a8b58815b4
69 changed files with 3967 additions and 1327 deletions

View 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',
};