I have a projet where i want to use this type of login :
I have set up a modal correctly and i can dismiss it with no problem, but my problem is that it take th
My solution to this:
import { Renderer } from '@angular/core';
import { ModalController, NavParams, ViewController } from 'ionic-angular';
@Component(...)
class HomePage {
constructor(
public modalCtrl: ModalController
) { }
presentProfileModal() {
let profileModal = this.modalCtrl.create(Profile, { userId: 8675309 });
profileModal.present();
}
}
@Component(...)
class Profile {
constructor(
params: NavParams,
public renderer: Renderer,
public viewCtrl: ViewController
) {
this.renderer.setElementClass(viewCtrl.pageRef().nativeElement, 'my-popup', true);
console.log('UserId', params.get('userId'));
}
}
Add this to your scss:
ion-modal.my-popup {
@media (min-width: 300px) and (min-height: 500px) {
ion-backdrop {
visibility: visible;
}
}
.modal-wrapper {
position: absolute;
overflow: hidden;
max-width: 280px;
border-radius: 2px;
width: 80vw;
height: 50vh;
top: 0;
bottom: 0;
left: 0;
right: 0;
margin: auto;
border: 0;
box-shadow: 0 16px 20px rgba(0,0,0,.4);
background-color: #fafafa;
}
}
Or this css, which will propose dynamic height:
ion-modal.my-popup {
@media (min-height: 500px) {
ion-backdrop {
visibility: visible;
}
}
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: $z-index-overlay;
display: flex;
align-items: center;
justify-content: center;
contain: strict;
.modal-wrapper {
&,
.ion-page,
.ion-page .content,
.ion-page .content .scroll-content {
contain: content;
position: relative;
top: auto;
left: auto;
}
z-index: $z-index-overlay-wrapper;
display: flex;
overflow: hidden;
flex-direction: column;
min-width: $alert-min-width;
max-height: $alert-max-height;
opacity: 0;
height: auto;
max-width: $alert-md-max-width;
border-radius: $alert-md-border-radius;
background-color: $alert-md-background-color;
box-shadow: $alert-md-box-shadow;
.ion-page .content {
background-color: color($colors, light);
}
}
}
I just set a class to modal element when it is called and change the style.