@Sweg wrote:
I am trying to create an Ionic 5 / Angular app that provides the following functionality to users:
- Display a List of Mechanics on Mechanic-List page
- A user can click on a mechanic so they can then send a message to the mechanic
Below is the structure I’m trying to implement, please let me know if it doesn’t make sense, or if there’s a better way:
Display list of mechanics in Mechanic-List below:
<ion-list> <ion-item *ngFor="let mechanic of loadedMechanics" (click)="onMechanicClick(mechanic.id)"> <h2>{{ mechanic.name }}</h2> </ion-item> </ion-list>
Here is how I am populating Mechanic-List:
Mechanic-list.page.ts:
this.loadedMechanics = this.usersService.getAllMechanics();
Users.service.ts:
private _users: User[] = [ new User('user1', 'John', 'mechanic'), new User('user2', 'Phil', 'mechanic'), new User('user3', 'Andrew', 'customer'), ]; getAllMechanics() { return this.users.filter(user => user.userType === 'mechanic'); }
Then when the user clicks on a Mechanic, open an ActionController by executing the below code:
onMechanicClick(mechanicId: string) { this.actionSheetCtrl.create({ buttons: [ { text: 'Send Message', handler: () => { this.goToConversationDetail(mechanicId); } } ] }).then(actionSheetEl => { actionSheetEl.present(); }); }
Then when the user clicks the Send Message button, navigate to the Conversation-Detail page.
This is where I am getting stuck.
Here is the current path for the Conversation-Detail page:
path: 'conversation-detail/:conversationId',
So you have to have an existing conversationId.
This works fine for existing conversations, I just pass the conversationId in using the below structure:
private _conversations: Conversation[] = [ new Conversation( 'conversation1', 'user3', 'user1', [ new Message('message1', 'Test message', 'user3', '01/01/2020'), new Message('message2', 'Another message', 'user1', '02/01/2020') ]), new Conversation( 'conversation2', 'user4', 'user2', [ new Message('message3', 'my message', 'user4', '05/03/2020'), new Message('message4', 'more messages', 'user2', '08/03/2020') ]) ];
But I want to know whats the best way to start off a new conversation between a Mechanic & a User.
In other words when there is no existing Conversation, what is the best way to begin one? Do I need to have a different page?
Any advice would be greatly appreciated, thanks a lot!
Posts: 1
Participants: 1