MCPcopy Create free account
hub / github.com/Linen-dev/linen.dev / TableMembers

Function TableMembers

apps/web/ui/MembersView/index.tsx:88–139  ·  view source on GitHub ↗
({
  users,
  onChangeMember,
  onDeleteMember,
}: {
  users: MembersType[];
  onChangeMember: (id: string, role: string, status: string) => Promise<void>;
  onDeleteMember: (user: MembersType) => Promise<void>;
})

Source from the content-addressed store, hash-verified

86}
87
88function TableMembers({
89 users,
90 onChangeMember,
91 onDeleteMember,
92}: {
93 users: MembersType[];
94 onChangeMember: (id: string, role: string, status: string) => Promise<void>;
95 onDeleteMember: (user: MembersType) => Promise<void>;
96}) {
97 function filterByEmail(e: any) {
98 const filter = e.target.value.toLowerCase();
99 const ul = document.getElementById('memberList');
100 if (!ul) return;
101 const li = ul.getElementsByTagName('li');
102 if (!li) return;
103 for (let i = 0; i < li.length; i++) {
104 let p = li[i].getElementsByTagName('p')[0];
105 if (p) {
106 let txtValue = p.textContent || p.innerText;
107 if (txtValue.toLowerCase().indexOf(filter) > -1) {
108 li[i].style.display = '';
109 } else {
110 li[i].style.display = 'none';
111 }
112 }
113 }
114 }
115
116 return (
117 <>
118 <div className={styles.flexPt4}>
119 <div className={styles.growMb2}>
120 <TextInput
121 id="filterByEmail"
122 label="Search"
123 onKeyUp={filterByEmail}
124 />
125 </div>
126 </div>
127 <ul role="list" id="memberList" className={styles.flexColGap0}>
128 {users?.map((user) => (
129 <RowMember
130 user={user}
131 onChangeMember={onChangeMember}
132 onDeleteMember={onDeleteMember}
133 key={user.id}
134 />
135 ))}
136 </ul>
137 </>
138 );
139}
140
141function RowMember({
142 user,

Callers

nothing calls this directly

Calls 1

mapMethod · 0.80

Tested by

no test coverage detected