(&mut self, msg: Self::Message)
| 147 | } |
| 148 | |
| 149 | fn update(&mut self, msg: Self::Message) -> ShouldRender { |
| 150 | match msg { |
| 151 | Self::Message::Open => { |
| 152 | self.props.open = true; |
| 153 | let el = self.node_ref.cast::<Element>().unwrap(); |
| 154 | let class_list = el.class_list(); |
| 155 | |
| 156 | if self.props.quick { |
| 157 | let _ = class_list.add_1("mdc-menu-surface--open"); |
| 158 | } else { |
| 159 | let _ = class_list.add_1("mdc-menu-surface--animating-open"); |
| 160 | let timeout = Timeout::new(10, move || { |
| 161 | let _ = class_list.add_1("mdc-menu-surface--open"); |
| 162 | let timeout = Timeout::new(120, move || { |
| 163 | let _ = class_list.remove_1("mdc-menu-surface--animating-open"); |
| 164 | }); |
| 165 | timeout.forget(); |
| 166 | }); |
| 167 | timeout.forget(); |
| 168 | } |
| 169 | |
| 170 | // register body handler |
| 171 | let link = self.props.link.borrow().clone().unwrap(); |
| 172 | let timeout = Timeout::new(10, move || { |
| 173 | link.send_message(Self::Message::RegisterBodyListener) |
| 174 | }); |
| 175 | timeout.forget(); |
| 176 | }, |
| 177 | Self::Message::RegisterBodyListener => { |
| 178 | self.register_body_listener(); |
| 179 | }, |
| 180 | Self::Message::Close => { |
| 181 | // self.onsignal.emit(()); |
| 182 | self.props.open = false; |
| 183 | let el = self.node_ref.cast::<Element>().unwrap(); |
| 184 | let class_list = el.class_list(); |
| 185 | if self.props.quick { |
| 186 | let _ = class_list.remove_1("mdc-menu-surface--open"); |
| 187 | } else { |
| 188 | let _ = class_list.add_1("mdc-menu-surface--animating-closed"); |
| 189 | let timeout = Timeout::new(10, move || { |
| 190 | let _ = class_list.remove_1("mdc-menu-surface--open"); |
| 191 | let timeout = Timeout::new(75, move || { |
| 192 | let _ = class_list.remove_1("mdc-menu-surface--animating-closed"); |
| 193 | }); |
| 194 | timeout.forget(); |
| 195 | }); |
| 196 | timeout.forget(); |
| 197 | } |
| 198 | // unregister body handler |
| 199 | self.unregister_body_listener(); |
| 200 | } |
| 201 | Self::Message::TransitionEnd => { |
| 202 | // info!("MENU TRANSITION END CATCHED"); |
| 203 | let el = self.node_ref.cast::<Element>().unwrap(); |
| 204 | let class_list = el.class_list(); |
| 205 | // let _ = class_list.remove_1("mdc-menu-surface--animating-open"); |
| 206 | // let _ = class_list.remove_3("mdc-drawer--animate", "mdc-drawer--opening", "mdc-drawer--closing"); |
nothing calls this directly
no test coverage detected