@@ -66,16 +66,6 @@ const MessageForm = ({
6666 ( MemberOption | GroupOption ) [ ]
6767 > ( [ ] ) ;
6868 const [ bodyLength , setBodyLength ] = useState ( message . body . length ) ;
69- const memberCache = React . useRef ( new Map < number , Member > ( ) ) . current ;
70-
71- const getMember = async ( id : number ) : Promise < Member > => {
72- if ( memberCache . has ( id ) ) {
73- return memberCache . get ( id ) ! ;
74- }
75- const { data } = await get ( { url : `/membership/member/${ id } ` } ) ;
76- memberCache . set ( id , data ) ;
77- return data ;
78- } ;
7969
8070 useEffect ( ( ) => {
8171 const unsubscribe = message . subscribe ( ( ) => {
@@ -97,14 +87,22 @@ const MessageForm = ({
9787 options : ( MemberOption | GroupOption | CombinedOption ) [ ] ,
9888 ) => void ,
9989 ) => {
100- const intListMatch = inputValue . match ( / ^ ( \d + [ \s , ] * ) + $ / ) ;
90+ const intListMatch = inputValue . match ( / ^ \s * ( \d + [ \s , ] * ) + \s * $ / ) ;
10191 if ( intListMatch ) {
10292 const ids = inputValue
10393 . split ( / [ \s , ] + / )
10494 . map ( ( v ) => parseInt ( v , 10 ) )
10595 . filter ( ( v ) => ! isNaN ( v ) ) ;
10696 if ( ids . length > 0 ) {
107- Promise . all ( ids . map ( getMember ) ) . then ( ( members ) => {
97+ get ( {
98+ url : "/membership/member" ,
99+ params : {
100+ search : ids . join ( " " ) ,
101+ search_column : "member_number" ,
102+ sort_by : "member_number" ,
103+ sort_order : "asc" ,
104+ } ,
105+ } ) . then ( ( { data : members } : { data : Member [ ] } ) => {
108106 const options = members . map ( memberOption ) ;
109107 callback ( [
110108 {
0 commit comments