Skip to content

Instantly share code, notes, and snippets.

View MaxenceMottard's full-sized avatar
📱

Maxence MaxenceMottard

📱
View GitHub Profile
public extension View {
func readSize(_ size: Binding<CGSize>) -> some View {
modifier(ReadSizeModifier(size: size))
}
func readSize(onChange: @escaping (CGSize) -> Void) -> some View {
background(
GeometryReader { geometryProxy in
Color.clear
import SwiftUI
struct RefreshableScrollView<Content: View>: View {
@State private var isRefreshing = false
@State private var initialValue: CGFloat = 50
private var threshold: CGFloat = 100
let axes: Axis.Set
let showsIndicators: Bool
let onRefresh: () async -> Void
//
// StatelessData.swift
// ticketchain
//
// Created by Maxence Mottard on 28/08/2022.
//
import Foundation
public enum StatelessData<T> {
@MaxenceMottard
MaxenceMottard / TicketShape.swift
Created October 13, 2022 17:54
Ticket Shape SwiftUI
struct TicketShape: Shape {
let cornerRadius: CGFloat
let center: CGFloat
let radius: CGFloat?
fileprivate init(cornerRadius: CGFloat, center: CGFloat, radius: CGFloat? = nil) {
self.cornerRadius = cornerRadius
self.center = center
self.radius = radius
}
const items = Array.from(document.querySelectorAll('#wwdc22 .collection-items .collection-item'))
let videos = {}
items
.map((item) => ({
title: item.querySelector('.video-title').innerText,
url: item.querySelector('.video-image-link').href,
image: item.querySelector('.video-image').src,
date: Array.from(item.querySelectorAll('span'))
@MaxenceMottard
MaxenceMottard / PromiseKit+Extensions.swift
Created March 29, 2022 17:40
PromiseKit Extension to Swift Concurrency
//
// Promise+Extension.swift
// blockchain-concerts
//
// Created by Maxence on 29/03/2022.
//
import Foundation
import PromiseKit
@MaxenceMottard
MaxenceMottard / GenericTextField.swift
Last active October 28, 2021 12:53
UITextField implementation in SwiftUI
import SwiftUI
struct GenericTextField: UIViewRepresentable {
// MARK: States
@Binding private var text: String
@Binding private var isEditing: Bool
@Binding private var isFirstResponder: Bool
private var formatText: (String, String) -> (String) = { _, newValue in
return newValue
@MaxenceMottard
MaxenceMottard / FormURLEncodable.swift
Last active August 3, 2021 08:11
Request Protocol with Swift & Combine
protocol FormURLEncodable {
var dictionary: [String: String] { get }
}
extension FormURLEncodable {
func encode() -> Data? {
return dictionary
.mapValues { $0.addingPercentEncoding(withAllowedCharacters: .urlPathAllowed) ?? "" }
.map { "\($0)=\($1)" }
.joined(separator: "&")
@MaxenceMottard
MaxenceMottard / ActivityView.swift
Last active August 3, 2021 08:17
UIActivityViewController implementation in SwiftUI
import UIKit
import SwiftUI
struct ActivityView: UIViewControllerRepresentable {
typealias Callback = (_ activityType: UIActivity.ActivityType?, _ completed: Bool, _ returnedItems: [Any]?, _ error: Error?) -> Void
let activityItems: [Any]
let applicationActivities: [UIActivity]? = nil
let excludedActivityTypes: [UIActivity.ActivityType]? = nil
let callback: Callback? = nil