Fixed several issues with use of `icon` and `this.component`

e.g. without this patches, the plugin is rendered useless as it has `.top` of `undefined` errors and the `icon` is non-existent so it causes issues as well there