Skip to content

Commit 6a96e84

Browse files
authored
Merge branch 'gamification' into GAME-QA-S4
2 parents c3d7e10 + 3095557 commit 6a96e84

File tree

4 files changed

+142
-2
lines changed

4 files changed

+142
-2
lines changed
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
@import "../../../../../lib/styles/variables";
2+
@import "../../../../../lib/styles/includes";
3+
4+
.wrapper {
5+
display: flex;
6+
flex-direction: column;
7+
justify-content: space-between;
8+
9+
.badge {
10+
display: flex;
11+
align-items: center;
12+
margin-bottom: $space-xxl;
13+
14+
@include ltemd {
15+
margin-bottom: 0;
16+
}
17+
18+
.badge-image {
19+
width: 43px;
20+
height: 43px;
21+
margin-right: $space-xl;
22+
}
23+
24+
.badge-image-disabled {
25+
width: 43px;
26+
height: 43px;
27+
margin-right: $space-xl;
28+
opacity: 0.5;
29+
filter: grayscale(1);
30+
}
31+
32+
.badge-name {
33+
font-size: 16px;
34+
}
35+
}
36+
37+
.actions-wrap {
38+
display: flex;
39+
flex-direction: column;
40+
41+
.actions {
42+
display: flex;
43+
align-items: center;
44+
45+
@include ltemd {
46+
justify-content: flex-end;
47+
}
48+
49+
a {
50+
margin-right: $space-md;
51+
}
52+
}
53+
}
54+
}
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
import { FC } from 'react'
2+
3+
import { BaseModal, Button, PageDivider, useCheckIsMobile } from '../../../../../lib'
4+
import { GameBadge } from '../../game-badge.model'
5+
6+
import styles from './BadgeActivatedModal.module.scss'
7+
export interface BadgeActivatedModalProps {
8+
badge: GameBadge
9+
isOpen: boolean
10+
onClose: () => void
11+
}
12+
13+
const BadgeActivatedModal: FC<BadgeActivatedModalProps> = (props: BadgeActivatedModalProps) => {
14+
15+
const isMobile: boolean = useCheckIsMobile()
16+
17+
function onClose(): void {
18+
props.onClose()
19+
}
20+
21+
return (
22+
<BaseModal
23+
onClose={onClose}
24+
open={props.isOpen}
25+
size='md'
26+
title={`Badge updated`}
27+
closeOnOverlayClick={false}
28+
>
29+
<div className={styles.wrapper}>
30+
<div className={styles.badge}>
31+
<img
32+
alt={props.badge.badge_name}
33+
className={styles[props.badge.active ? 'badge-image' : 'badge-image-disabled']}
34+
src={props.badge.badge_image_url}
35+
/>
36+
<p className={styles['badge-name']}>{props.badge.badge_name} badge has been sucessfully {props.badge.active ? 'activated' : 'deactivated'}.</p>
37+
</div>
38+
<div className={styles['actions-wrap']}>
39+
{
40+
isMobile && <PageDivider />
41+
}
42+
<div className={styles.actions}>
43+
<Button
44+
label='Close'
45+
buttonStyle='primary'
46+
onClick={onClose}
47+
/>
48+
</div>
49+
</div>
50+
</div>
51+
</BaseModal>
52+
)
53+
}
54+
55+
export default BadgeActivatedModal
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export { default as BadgeActivatedModal } from './BadgeActivatedModal'

src-ts/tools/gamification-admin/pages/badge-detail/BadgeDetailPage.tsx

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,11 +144,33 @@ const BadgeDetailPage: FC = () => {
144144
)
145145

146146
function onActivateBadge(): void {
147-
// TODO: implement in GAME-127
147+
updateBadgeAsync({
148+
badgeActive: true,
149+
id: badgeDetailsHandler.data?.id as string,
150+
})
151+
.then(() => {
152+
badgeDetailsHandler.mutate({
153+
...badgeDetailsHandler.data,
154+
active: true,
155+
})
156+
setShowActivatedModal(true)
157+
})
158+
.catch((e) => alert(`onActivateBadge error: ${e.message}`))
148159
}
149160

150161
function onDisableBadge(): void {
151-
// TODO: implement in GAME-127
162+
updateBadgeAsync({
163+
badgeActive: false,
164+
id: badgeDetailsHandler.data?.id as string,
165+
})
166+
.then(() => {
167+
badgeDetailsHandler.mutate({
168+
...badgeDetailsHandler.data,
169+
active: false,
170+
})
171+
setShowActivatedModal(true)
172+
})
173+
.catch((e) => alert(`onDisableBadge error: ${e.message}`))
152174
}
153175

154176
function onNameEditKeyDown(e: KeyboardEvent): void {
@@ -339,6 +361,14 @@ const BadgeDetailPage: FC = () => {
339361
)
340362
}
341363
</div>
364+
{
365+
badgeDetailsHandler.data &&
366+
<BadgeActivatedModal
367+
isOpen={showActivatedModal}
368+
onClose={() => setShowActivatedModal(false)}
369+
badge={badgeDetailsHandler.data}
370+
/>
371+
}
342372
</ContentLayout>
343373
)
344374
}

0 commit comments

Comments
 (0)