Skip to content
This repository was archived by the owner on Feb 16, 2023. It is now read-only.

Commit ba557a7

Browse files
committed
fix: character name can be changed
1 parent 183cd26 commit ba557a7

File tree

6 files changed

+37
-61
lines changed

6 files changed

+37
-61
lines changed
+19-50
Original file line numberDiff line numberDiff line change
@@ -1,72 +1,41 @@
11
<template>
2-
<EditableColumn>
3-
<template #viewer>
4-
<p v-if="site">
5-
<Icon
6-
:name="site.systemBadge+'-logo'"
7-
small
8-
/>
9-
{{ site.name }}
10-
</p>
11-
<p v-if="character">
12-
{{ character.name }}
13-
</p>
14-
</template>
15-
<template #editor>
16-
<Icon
17-
:name="site.systemBadge+'-logo'"
18-
medium
19-
/>
20-
<MaterialSelect
21-
v-model="siteid"
22-
:opts="siteOpts"
23-
:label="$t('character.stats.game')"
24-
/>
25-
<Textfield
26-
v-model="charname"
27-
:label="$t('character.stats.name')"
28-
blur
29-
/>
30-
</template>
31-
</EditableColumn>
2+
<Column class="CharacterMetaForm">
3+
<Textfield
4+
v-model="name"
5+
:label="$t('character.meta.name')"
6+
/>
7+
</Column>
328
</template>
339

3410
<script lang="ts">
3511
import { computed, defineComponent } from 'vue'
36-
import MaterialSelect from '../material/MaterialSelect.vue'
37-
import { useSites } from '@/state/sites'
38-
import { useCharacters } from '@/state/characters'
12+
import { Character, useCharacters } from '@/state/characters'
13+
import Column from '../layout/Column.vue'
3914
import Textfield from '../form/Textfield.vue'
40-
import { useSite } from '@/state/site'
41-
import Icon from '../material/Icon.vue'
42-
import EditableColumn from '../layout/EditableColumn.vue'
43-
import { logDebug } from '@/utils/eventLogger'
4415
4516
export default defineComponent({
4617
name: 'CharacterMetaForm',
47-
components: { MaterialSelect, Textfield, Icon, EditableColumn },
18+
components: { Column, Textfield },
4819
props: {
49-
characterid: {
20+
characterId: {
5021
type: String,
5122
required: true
5223
}
5324
},
5425
setup (props) {
5526
const { characters } = useCharacters()
56-
const character = computed(() => characters.value.get(props.characterid))
57-
const { userSites } = useSites()
58-
const { site } = useSite()
59-
const siteOpts = computed(() => {
60-
return userSites.value.filter((s) => (s.usePlayers)).map((s) => ({ key: s.id, value: s.name }))
61-
})
27+
const character = computed(() => (characters.value.get(props.characterId) || new Character()))
6228
63-
const charname = computed({
64-
get: () => (character?.value?.name ?? ''),
65-
set: (n: string) => {
66-
logDebug('CharacterMetaForm.charname.set', n)
29+
const name = computed({
30+
get: () => {
31+
return character.value.name
32+
},
33+
set: (value) => {
34+
character.value.name = value
6735
}
6836
})
69-
return { siteOpts, site, charname, character }
37+
38+
return { character, name }
7039
}
7140
})
7241
</script>

src/components/character/CharacterSheet.vue

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<template>
2-
<div class="CharacterSheet flexList">
2+
<div class="CharacterSheet">
33
<div
44
v-for="(block, blockIndex) in character.sheet.layout"
55
:key="blockIndex"

src/components/character/CharacterStat.vue

+1-1
Original file line numberDiff line numberDiff line change
@@ -55,5 +55,5 @@ export default defineComponent({
5555

5656
<style lang="sass" scoped>
5757
.CharacterStat
58-
display: inline-block
58+
display: block
5959
</style>

src/components/profile/characters/CharacterListCard.vue

+1-8
Original file line numberDiff line numberDiff line change
@@ -5,24 +5,17 @@
55
{{ character.name }}
66
</router-link>
77
</h3>
8-
<Toolbar>
9-
<Button text>
10-
{{ $t('character.title') }}
11-
</Button>
12-
</Toolbar>
138
</Card>
149
</template>
1510

1611
<script lang="ts">
17-
import Button from '@/components/form/Button.vue'
1812
import Card from '@/components/layout/Card.vue'
19-
import Toolbar from '@/components/layout/Toolbar.vue'
2013
import { useCharacters } from '@/state/characters'
2114
import { Character } from '@/state/characters/Character'
2215
import { computed, defineComponent } from 'vue'
2316
2417
export default defineComponent({
25-
components: { Card, Toolbar, Button },
18+
components: { Card },
2619
props: {
2720
id: {
2821
type: String,

src/locales/en.json

+9
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
"title": "About the App"
44
},
55
"action": {
6+
"add": "Add New",
67
"addSite": "Create new",
78
"addThread": "New Discussion",
89
"delete": "Delete",
@@ -28,6 +29,9 @@
2829
"text2": "You can hide your game from public listings and hide it behind a magic link."
2930
}
3031
},
32+
"character":{
33+
"title": "Character"
34+
},
3135
"home": {
3236
"changesCard": {
3337
"title": "Sites and Games",
@@ -41,6 +45,11 @@
4145
"post": {
4246
"nOfReplies": "comments"
4347
},
48+
"profile":{
49+
"characters": {
50+
"title": "Characters"
51+
}
52+
},
4453
"registration": {
4554
"title": "Register"
4655
},

src/views/characters/CharacterView.vue

+6-1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,10 @@
2323
:id="id"
2424
class="double"
2525
/>
26+
<CharacterMetaForm
27+
:character-id="id"
28+
class="single"
29+
/>
2630
</main>
2731
<Dialog
2832
v-model="showDeleteDialog"
@@ -72,10 +76,11 @@ import Button from '@/components/form/Button.vue'
7276
import Toolbar from '@/components/layout/Toolbar.vue'
7377
import { useUxActions } from '@/composables/useUxActions'
7478
import Icon from '@/components/material/Icon.vue'
79+
import CharacterMetaForm from '@/components/character/CharacterMetaForm.vue'
7580
7681
export default defineComponent({
7782
name: 'CharacterView',
78-
components: { CharacterSheet, ViewTitle, Header, SpacerDiv, MaterialMenu, Dialog, Toggle, Button, Toolbar, Icon },
83+
components: { CharacterSheet, ViewTitle, Header, SpacerDiv, MaterialMenu, Dialog, Toggle, Button, Toolbar, Icon, CharacterMetaForm },
7984
props: {
8085
id: {
8186
type: String,

0 commit comments

Comments
 (0)