diff --git a/app/imports/ui/character/StatsTab.vue b/app/imports/ui/character/StatsTab.vue
index dd2ee105..60d45939 100644
--- a/app/imports/ui/character/StatsTab.vue
+++ b/app/imports/ui/character/StatsTab.vue
@@ -15,8 +15,8 @@
@@ -26,16 +26,16 @@
@@ -47,9 +47,9 @@
hitDiceChange(hitDie._id, e)"
/>
@@ -65,8 +65,8 @@
v-for="save in savingThrows"
v-bind="save"
:key="save._id"
- :id="`${_uid}-${save._id}`"
- @click="clickSkill({elementId: `${_uid}-${save._id}`, _id: save._id})"
+ :data-id="save._id"
+ @click="clickSkill({_id: save._id})"
/>
@@ -80,8 +80,8 @@
v-for="skill in skills"
v-bind="skill"
:key="skill._id"
- :id="`${_uid}-${skill._id}`"
- @click="clickSkill({elementId: `${_uid}-${skill._id}`, _id: skill._id})"
+ :data-id="skill._id"
+ @click="clickSkill({_id: skill._id})"
/>
@@ -173,10 +173,10 @@
},
},
methods: {
- clickAttribute({elementId, _id}){
+ clickAttribute({_id}){
this.$store.commit("pushDialogStack", {
component: "attribute-dialog-container",
- elementId,
+ elementId: _id,
data: {_id},
});
},
diff --git a/app/imports/ui/components/AbilityListTile.Story.vue b/app/imports/ui/components/AbilityListTile.Story.vue
index 782ce219..ebd598a5 100644
--- a/app/imports/ui/components/AbilityListTile.Story.vue
+++ b/app/imports/ui/components/AbilityListTile.Story.vue
@@ -4,7 +4,7 @@
diff --git a/app/imports/ui/components/EffectListTile.vue b/app/imports/ui/components/EffectListTile.vue
index 3e568fff..538e8b14 100644
--- a/app/imports/ui/components/EffectListTile.vue
+++ b/app/imports/ui/components/EffectListTile.vue
@@ -2,9 +2,9 @@
@@ -46,11 +46,6 @@
stat: String,
statName: String,
},
- computed: {
- elementId(){
- return `${this._uid}-${this._id}`
- },
- },
methods: {
getEffectIcon,
getOperation(op, value){
diff --git a/app/imports/ui/components/HealthBar.vue b/app/imports/ui/components/HealthBar.vue
index 111ab9c3..d41e77af 100644
--- a/app/imports/ui/components/HealthBar.vue
+++ b/app/imports/ui/components/HealthBar.vue
@@ -7,13 +7,13 @@
style="min-height: 48px;"
:class="{ hover }"
class="my-3 health-bar"
- :id="`${_uid}-${_id}`"
+ :data-id="_id"
>
{{ name }}
diff --git a/app/imports/ui/components/HealthBarCard.vue b/app/imports/ui/components/HealthBarCard.vue
index 52336152..4506529d 100644
--- a/app/imports/ui/components/HealthBarCard.vue
+++ b/app/imports/ui/components/HealthBarCard.vue
@@ -6,8 +6,9 @@
:value="attribute.value + (attribute.adjustment || 0)"
:maxValue="attribute.value"
:name="attribute.name"
+ :_id="attribute._id"
@change="e => $emit('change', {_id: attribute._id, change: e})"
- @click="e => $emit('click', {_id: attribute._id, elementId: e.elementId})"
+ @click="e => $emit('click', {_id: attribute._id})"
/>
diff --git a/app/imports/ui/components/HealthBarCardContainer.vue b/app/imports/ui/components/HealthBarCardContainer.vue
index 4ab184cf..6591c921 100644
--- a/app/imports/ui/components/HealthBarCardContainer.vue
+++ b/app/imports/ui/components/HealthBarCardContainer.vue
@@ -30,10 +30,10 @@
},
},
methods: {
- healthBarClicked({_id, elementId}){
+ healthBarClicked({_id}){
this.$store.commit("pushDialogStack", {
component: "attribute-dialog-container",
- elementId,
+ elementId: _id,
data: {_id},
});
},
diff --git a/app/imports/ui/dialogStack/DialogBase.Story.vue b/app/imports/ui/dialogStack/DialogBase.Story.vue
index e060c994..891eb3b2 100644
--- a/app/imports/ui/dialogStack/DialogBase.Story.vue
+++ b/app/imports/ui/dialogStack/DialogBase.Story.vue
@@ -4,8 +4,8 @@
Test Dialog
- Open Dialog
- Open Dialog
+ Open Dialog
+ Open Dialog
diff --git a/app/imports/ui/dialogStack/DialogStack.Story.vue b/app/imports/ui/dialogStack/DialogStack.Story.vue
index 7ce6191c..56ad1c1e 100644
--- a/app/imports/ui/dialogStack/DialogStack.Story.vue
+++ b/app/imports/ui/dialogStack/DialogStack.Story.vue
@@ -1,7 +1,7 @@
-
+
Open Dialog
diff --git a/app/imports/ui/dialogStack/DialogStack.vue b/app/imports/ui/dialogStack/DialogStack.vue
index d65ce97f..846ba3a5 100644
--- a/app/imports/ui/dialogStack/DialogStack.vue
+++ b/app/imports/ui/dialogStack/DialogStack.vue
@@ -22,6 +22,7 @@
:data-element-id="dialog.elementId"
:data-return-element-id="dialog.returnElementId"
:data-index="index"
+ :ref="index"
:style="getDialogStyle(index)"
:elevation="6"
>
@@ -49,10 +50,6 @@
},
},
methods: {
- logAndReturn(thing){
- console.log(thing);
- return thing;
- },
popDialogStack(result){
this.$store.dispatch("popDialogStack", result);
},
@@ -67,13 +64,22 @@
const top = (num - index) * -OFFSET;
return `left:${left}px; top:${top}px;`;
},
+ getTopElementByDataId(elementId, offset = 0){
+ let stackLength = this.$store.state.dialogStack.dialogs.length - offset;
+ if (stackLength){
+ let topDialog = this.$refs[stackLength - 1][0];
+ return topDialog.$el.querySelector(`[data-id='${elementId}']`);
+ } else {
+ return document.querySelector(`[data-id='${elementId}']`);
+ }
+ },
enter(target, done){
if (!target || !target.attributes['data-element-id']){
done();
return;
}
let elementId = target.attributes['data-element-id'].value;
- let source = document.getElementById(elementId);
+ let source = this.getTopElementByDataId(elementId, 1);
if (!source){
done();
return;
@@ -119,7 +125,7 @@
}
elementId = target.attributes['data-element-id'].value;
}
- let source = document.getElementById(elementId);
+ let source = this.getTopElementByDataId(elementId);
if (!source){
done();
return;