Skip to content

Instantly share code, notes, and snippets.

View armancodv's full-sized avatar
💻
developing

Arman Kolahan armancodv

💻
developing
View GitHub Profile
@armancodv
armancodv / user.ts
Created November 28, 2020 13:44
Null Safety TS
let displayName = firstName ?? 'Default Name'
// it is equivalent to
let displayName = firstName !== undefined && firstName !== null ? firsName : 'Default Name'
@armancodv
armancodv / user.ts
Created November 28, 2020 13:09
Null Safety TS
console.log(car?.owner?.account?.firstName)
// it is equivalent to
console.log(
(
car !== undefined && car !== null &&
car.owner !== undefined && car.owner !== null &&
car.owner.account !== undefined && car.owner.account !== null
) ? car.owner.account.firstName : undefined
console.log(user2 !== undefined && user2 !== null ? user2.firstname : undefined);
@armancodv
armancodv / user.ts
Created November 28, 2020 12:39
Null Safety TS
console.log(user2?.firstname);
@armancodv
armancodv / user.js
Last active November 28, 2020 12:31
Null Safety TS
const user2 = undefined;
// first approach
if(user2 !== undefined && user2 !== null) {
console.log(user2.firstname);
}
// second approach
console.log(user2 !== undefined && user2 !== null ? user2.firstname : undefined);
@armancodv
armancodv / user.js
Last active November 22, 2020 11:36
Null Safety TS
const user = {
firstName: 'Lorem',
lastName: 'Ipsum'
};
const user2 = undefined;
console.log(user.firstName);
// it logs 'Lorem'
console.log(user2.firstName);
class LoginPresenter : BasePresenter<LoginContract.View>(), LoginContract.Presenter {
override fun onViewCreated() {
super.onViewCreated()
}
override fun login(email: String?, password: String?) {
}
override fun checkEmail(email: String) {
abstract class BasePresenter<V : BaseContract.View> : BaseContract.Presenter<V> {
protected var view: V? = null
override fun onAttach(view: V) {
this.view = view
}
override fun onViewCreated() {
}
class LoginFragment : Fragment(), LoginContract.View {
private val presenter: LoginPresenter = LoginPresenter()
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
return inflater.inflate(R.layout.fragment_login, container, false)
interface LoginContract {
interface View : BaseContract.View {
fun showEmailError(error: String?)
fun showPasswordError(error: String?)
fun disableButton()
fun enableButton()
}
interface Presenter : BaseContract.Presenter<View> {
fun login(email: String?, password: String?)