I want to subscript to an observable that has a filtered value, but the filtering part isn't working.
In my service, I have
export class UserService {
  private userList: user[];
  public userList$ = new BehaviorSubject<user[]>([]);
  constructor() {
    this.userList = [
      {
        name : "ben",
        isActive : true,
      },
      {
        name : "chen",
        isActive : true,
      },
      {
        name : "Ray",
        isActive : true,
      },
      {
        name : "GuanJiaHong",
        isActive : true,
      },
      {
        name : "Maoge",
        isActive : true,
      },
    ]; 
    this.userList$.next(this.userList);
  }
  getActiveUsers(): Observable<user[]> {
    return this.userList$.asObservable().pipe(map(user => user.filter(x => x.isActive == true)));
  }
  setToInactive(user: user) {
    const currentUser = this.userList.find(x => x == user);
    if(currentUser != undefined) {
      currentUser.isActive = false;
    }
  }
}
and in my component, I have
export class ActiveUsersComponent implements OnInit {
  activeUser$: Observable<user[]> = new Observable();
  constructor(private userService: UserService) { }
  ngOnInit(): void {
    this.activeUser$ = this.userService.getActiveUsers();
  }
  setInactive(user: user) {
    this.userService.setToInactive(user);
  }
}
In my activeUser template, I have
Active User:<br>
<div *ngFor="let user of activeUser$ | async">
    {{user.name}} <button (click)="setInactive(user)">inactive</button><br>
</div>
when I set a user to inactive, this.activeUser$ should be filtered with only active user and the template should only be showing the active user, but it's still showing all the user including inactive user, I wonder what's wrong with my Observable implementation? Thank you.
 
    