Refactor: Make SelectOptionItem a generic type to enable select value typing (#16718)

* Make SelectOptionItem a generic type to enable select value typing
* TS ignores added because of optional value on Select items (it's no longer any)
This commit is contained in:
Dominik Prokop
2019-04-23 20:44:16 +02:00
committed by GitHub
parent f4a8240d0d
commit 19e824006a
26 changed files with 71 additions and 61 deletions

View File

@@ -80,7 +80,7 @@ describe('Functions', () => {
};
const { instance } = setup({ member });
const permission = TeamPermissionLevel.Admin;
const item: SelectOptionItem = { value: permission };
const item: SelectOptionItem<TeamPermissionLevel> = { value: permission };
const expectedTeamMemeber = { ...member, permission };
instance.onPermissionChange(item, member);

View File

@@ -2,7 +2,7 @@ import React, { PureComponent } from 'react';
import { connect } from 'react-redux';
import { DeleteButton, Select, SelectOptionItem } from '@grafana/ui';
import { TeamMember, teamsPermissionLevels } from 'app/types';
import { TeamMember, teamsPermissionLevels, TeamPermissionLevel } from 'app/types';
import { WithFeatureToggle } from 'app/core/components/WithFeatureToggle';
import { updateTeamMember, removeTeamMember } from './state/actions';
import { TagBadge } from 'app/core/components/TagFilter/TagBadge';
@@ -27,7 +27,7 @@ export class TeamMemberRow extends PureComponent<Props> {
this.props.removeTeamMember(member.userId);
}
onPermissionChange = (item: SelectOptionItem, member: TeamMember) => {
onPermissionChange = (item: SelectOptionItem<TeamPermissionLevel>, member: TeamMember) => {
const permission = item.value;
const updatedTeamMember = { ...member, permission };