Skip to content

Commit 3ba67f3

Browse files
committed
Merge branch 'refactor/using-modal-service' into 'master'
Refactor: Using ModalService See merge request minds/front!1711
2 parents 05101af + df2d5b0 commit 3ba67f3

File tree

241 files changed

+5949
-4954
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

241 files changed

+5949
-4954
lines changed

package-lock.json

Lines changed: 4426 additions & 2041 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
"@angular/compiler": "~12.1.2",
3434
"@angular/core": "~12.1.2",
3535
"@angular/forms": "~12.1.2",
36-
"@angular/localize": "^12.1.2",
36+
"@angular/localize": "~12.1.2",
3737
"@angular/platform-browser": "~12.1.2",
3838
"@angular/platform-browser-dynamic": "~12.1.2",
3939
"@angular/platform-server": "~12.1.2",
@@ -44,6 +44,7 @@
4444
"@growthbook/growthbook": "^0.13.0",
4545
"@mindsorg/ngx-universal": "^2.3.0",
4646
"@mindsorg/web3modal-angular": "^1.6.1",
47+
"@ng-bootstrap/ng-bootstrap": "^10.0.0",
4748
"@nguniversal/builders": "~12.1.0",
4849
"@nguniversal/common": "~12.1.0",
4950
"@nguniversal/express-engine": "~12.1.0",
@@ -63,6 +64,7 @@
6364
"assert": "^2.0.0",
6465
"blurhash": "^1.1.4",
6566
"bn.js": "^5.2.0",
67+
"bootstrap": "^5.1.3",
6668
"braintree-web": "3.79.1",
6769
"cookie-parser": "^1.4.5",
6870
"core-js": "~3.15.2",

src/app/common/common.module.ts

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,6 @@ import { DropdownComponent } from './components/dropdown/dropdown.component';
5454
import { DynamicHostDirective } from './directives/dynamic-host.directive';
5555
import { MindsCard } from './components/card/card.component';
5656
import { MindsButton } from './components/button-v1/button-v1.component';
57-
import { OverlayModalComponent } from './components/overlay-modal/overlay-modal.component';
5857

5958
import { ChartComponent } from './components/chart/chart.component';
6059
import { DateSelectorComponent } from './components/date-selector/date-selector.component';
@@ -144,7 +143,6 @@ import { SidebarNavigationService } from './layout/sidebar/navigation.service';
144143
import { TopbarService } from './layout/topbar.service';
145144
import { UserMenuV3Component } from './layout/v3-topbar/user-menu/user-menu.component';
146145
import { NestedMenuComponent } from './layout/nested-menu/nested-menu.component';
147-
import { StackableModalComponent } from './components/stackable-modal/stackable-modal.component';
148146
import { FileUploadComponent } from './components/file-upload/file-upload.component';
149147
import { IconComponent } from './components/icon/icon.component';
150148
import { OverlayComponent } from './components/overlay/overlay.component';
@@ -199,6 +197,7 @@ import { AutofocusDirective } from './directives/autofocus.directive';
199197
import { SidebarMoreComponent } from './layout/sidebar-more/sidebar-more.component';
200198
import { SidebarMoreTriggerComponent } from './layout/sidebar-more/sidebar-more-trigger/sidebar-more-trigger.component';
201199
import { TagSelectorComponent } from './components/tag-selector/tag-selector.component';
200+
import { ModalCloseButtonComponent } from './components/modal-close-button/modal-close-button.component';
202201
import { BlurhashDirective } from './directives/blurhash/blurhash.directive';
203202

204203
const routes: Routes = [
@@ -273,7 +272,6 @@ const routes: Routes = [
273272
MindsButton,
274273

275274
ChartComponent,
276-
OverlayModalComponent,
277275

278276
AdminActionsButtonComponent,
279277

@@ -330,7 +328,6 @@ const routes: Routes = [
330328
FormInputCheckboxComponent,
331329
ExplicitOverlayComponent,
332330
NestedMenuComponent,
333-
StackableModalComponent,
334331
FileUploadComponent,
335332
IconComponent,
336333
OverlayComponent,
@@ -370,6 +367,7 @@ const routes: Routes = [
370367
SidebarMoreComponent,
371368
SidebarMoreTriggerComponent,
372369
TagSelectorComponent,
370+
ModalCloseButtonComponent,
373371
BlurhashDirective,
374372
],
375373
exports: [
@@ -422,7 +420,6 @@ const routes: Routes = [
422420
MindsButton,
423421

424422
ChartComponent,
425-
OverlayModalComponent,
426423

427424
AdminActionsButtonComponent,
428425

@@ -478,7 +475,6 @@ const routes: Routes = [
478475
FormInputCheckboxComponent,
479476
ExplicitOverlayComponent,
480477
NestedMenuComponent,
481-
StackableModalComponent,
482478
FileUploadComponent,
483479
IconComponent,
484480
OverlayComponent,
@@ -517,6 +513,7 @@ const routes: Routes = [
517513
SidebarMoreComponent,
518514
SidebarMoreTriggerComponent,
519515
TagSelectorComponent,
516+
ModalCloseButtonComponent,
520517
BlurhashDirective,
521518
],
522519
providers: [

src/app/common/components/date-range-modal/date-range-modal.component.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,3 +36,5 @@
3636
</m-button>
3737
</div>
3838
</div>
39+
40+
<m-modalCloseButton></m-modalCloseButton>

src/app/common/components/date-range-modal/date-range-modal.component.ng.scss

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,12 @@
99
border-radius: $m-borderRadius;
1010
display: flex;
1111
flex-direction: column;
12-
margin: 40px;
1312

1413
@media screen and (max-width: $max-mobile) {
1514
padding: 24px;
1615
margin: 20vh 0;
1716
}
1817

19-
@include m-theme() {
20-
background-color: themed($m-bgColor--primary);
21-
box-shadow: 0 0 15px 0 rgba(themed($m-black-always), 0.1);
22-
}
23-
2418
.m-dateRangeModal__header {
2519
font-size: 22px;
2620
line-height: 29px;

src/app/common/components/date-range-modal/date-range-modal.component.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -68,16 +68,6 @@ export class DateRangeModalComponent implements OnInit, OnDestroy {
6868
}
6969
}
7070

71-
/**
72-
* Modal options
73-
* @param onApply
74-
* @param onDismissIntent
75-
*/
76-
set opts({ onApply, onDismissIntent }) {
77-
this.onApplyIntent = onApply || noOp;
78-
this.onDismissIntent = onDismissIntent || noOp;
79-
}
80-
8171
onFromDateChange(newDate): void {
8272
this.fromDate = moment(new Date(newDate))
8373
.startOf('day')
@@ -125,4 +115,14 @@ export class DateRangeModalComponent implements OnInit, OnDestroy {
125115
get dateRange(): FeedFilterDateRange {
126116
return { fromDate: this.fromDate, toDate: this.toDate };
127117
}
118+
119+
/**
120+
* Modal options
121+
* @param onApply
122+
* @param onDismissIntent
123+
*/
124+
setModalData({ onApply, onDismiss }) {
125+
this.onApplyIntent = onApply || noOp;
126+
this.onDismissIntent = onDismiss || noOp;
127+
}
128128
}
Lines changed: 14 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,30 @@
11
import { Injectable, Injector } from '@angular/core';
2-
import { Observable } from 'rxjs';
3-
import { OverlayModalService } from '../../../services/ux/overlay-modal';
42
import { DateRangeModalComponent } from '../date-range-modal/date-range-modal.component';
53
import { FeedFilterDateRange } from '../feed-filter/feed-filter.component';
4+
import { ModalService } from '../../../services/ux/modal.service';
65

76
@Injectable()
87
export class DateRangeModalService {
98
/**
109
* Constructor
11-
* @param overlayModal
10+
* @param modalService
1211
*/
13-
constructor(protected overlayModal: OverlayModalService) {}
12+
constructor(protected modalService: ModalService) {}
1413

1514
/**
16-
* Presents the languages modal
15+
* Presents the date range modal
1716
* @param injector
1817
*/
19-
present(injector: Injector): Observable<FeedFilterDateRange> {
20-
return new Observable<FeedFilterDateRange>(subscriber => {
21-
let open = true;
22-
23-
this.overlayModal
24-
.create(
25-
DateRangeModalComponent,
26-
null,
27-
{
28-
wrapperClass: 'm-modalV2__wrapper',
29-
onApply: dateRange => {
30-
subscriber.next(dateRange);
31-
this.overlayModal.dismiss();
32-
},
33-
onDismissIntent: () => {
34-
this.overlayModal.dismiss();
35-
},
36-
},
37-
injector
38-
)
39-
.onDidDismiss(() => {
40-
open = false;
41-
subscriber.complete();
42-
})
43-
.present();
44-
45-
return () => {
46-
if (open) {
47-
this.overlayModal.dismiss();
48-
}
49-
};
18+
pick(injector: Injector): Promise<FeedFilterDateRange> {
19+
const modal = this.modalService.present(DateRangeModalComponent, {
20+
data: {
21+
onApply: dateRange => {
22+
modal.close(dateRange);
23+
},
24+
},
25+
injector,
5026
});
27+
28+
return modal.result;
5129
}
5230
}

src/app/common/components/feed-filter/feed-filter.component.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -147,9 +147,9 @@ export class FeedFilterComponent implements OnInit {
147147
* Opens date range modal
148148
*/
149149
async openDateRangeModal(): Promise<void> {
150-
const dateRange: FeedFilterDateRange = await this.dateRangeModal
151-
.present(this.injector)
152-
.toPromise();
150+
const dateRange: FeedFilterDateRange = await this.dateRangeModal.pick(
151+
this.injector
152+
);
153153

154154
if (dateRange) {
155155
this.service.dateRange$.next(dateRange);
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
<a [class.white]="white" (click)="close()">
2+
<i class="material-icons">close</i>
3+
</a>
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
@import 'defaults.scss';
2+
3+
:host {
4+
a {
5+
position: absolute;
6+
top: 10px;
7+
right: 10px;
8+
z-index: 3;
9+
display: inline-block;
10+
padding: 10px;
11+
border-radius: 4px;
12+
cursor: pointer;
13+
transition: background-color 0.3s;
14+
15+
@include m-theme() {
16+
background-color: rgba(themed($m-black), 0.025);
17+
}
18+
19+
&:hover {
20+
@include m-theme() {
21+
background-color: rgba(themed($m-black), 0.05);
22+
}
23+
}
24+
25+
&.white {
26+
@include m-theme() {
27+
background-color: rgba(themed($m-white-always), 0.025);
28+
color: themed($m-white-always);
29+
}
30+
31+
&:hover {
32+
@include m-theme() {
33+
background-color: rgba(themed($m-white-always), 0.05);
34+
}
35+
}
36+
}
37+
}
38+
}

0 commit comments

Comments
 (0)